powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как правильно вставлять формулы в FormulaR1C1?
8 сообщений из 8, страница 1 из 1
Как правильно вставлять формулы в FormulaR1C1?
    #33447498
klopik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется столбец в Excel, который является разницей двух других столбцов.
Как эту разницу записать на VBA в виде FormulaR1C1?
Если просто писать а-в, то тогда на листе не видно что из чего вычетается, то есть получается не формула, а просто число.
Как правильно записать, если у меня имеется:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
For i =  1  To Range("Разница").Rows.Count

Set a = Stolbec.Cells(i,  1 )
Set b = Stolbec.Cells(i,  1 ).Offset( 0 , - 1 )
Range("Разница").Cells(i,  1 ).FormulaR1C1 = Вот тут как правильно написать a-b?

Next i

Буду благодарен за Вашу помощь.
...
Рейтинг: 0 / 0
Как правильно вставлять формулы в FormulaR1C1?
    #33447592
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Range("Разница").FormulaR1C1 = "=RC[-1]-RC[-2]"
...
Рейтинг: 0 / 0
Как правильно вставлять формулы в FormulaR1C1?
    #33448279
klopik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, ну это я знаю. Это если макрос записать - так и получится!
А вот если нужно вместо цифр вставлять переменные? Типа
Код: plaintext
1.
Range("Разница").FormulaR1C1 = "=RC[-a]-RC[-b]"
То что я написал не работает...
Как правильно в эту строчку вставить переменные а и b?
...
Рейтинг: 0 / 0
Как правильно вставлять формулы в FormulaR1C1?
    #33448295
klopik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде получилось. Как-то криво, однако работает:
Код: plaintext
1.
2.
mystring = "=RC[-" & a & "]-RC[-" & b & "]"
Range("Разница").FormulaR1C1 = mystring
...
Рейтинг: 0 / 0
Как правильно вставлять формулы в FormulaR1C1?
    #33450242
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что у тебя в этих переменных то?
Если переменные a и b это целочисленные переменные в которых находится смещение от целевой ячейки, то запись
Код: plaintext
Range("Разница").FormulaR1C1 = "=RC[-" & a & "]-RC[-" & b & "]"
будет самой правильной.

Если a и b сами по себе ячейки, то прийдется усложнять:
Код: plaintext
Range("Разница").FormulaR1C1 = "=RC[-" & (Range("Разница").Column - a.Column) & "]-RC[-" & (Range("Разница").Column - b.Column) & "]"
...
Рейтинг: 0 / 0
Как правильно вставлять формулы в FormulaR1C1?
    #33450368
Мшсещырф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl...
Если a и b сами по себе ячейки, то ...

можно сделать еще вот такой монтаж.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub test()
  Dim tR As Range
  Dim a As Range
  Dim b As Range
  
  With ActiveSheet
      Set tR = .Range("A3")
      Set a = .Range("A1")
      Set b = .Range("A2")
    
      tR.FormulaR1C1 = "=" & a.Address(False, False, xlR1C1, , tR) _
      & "-" & b.Address(False, False, xlR1C1, , tR)
    
  End With
End Sub
...
Рейтинг: 0 / 0
Как правильно вставлять формулы в FormulaR1C1?
    #33450683
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мшсещырфможно сделать еще вот такой монтаж.
Можно, но только для одной ячейки.
...
Рейтинг: 0 / 0
Как правильно вставлять формулы в FormulaR1C1?
    #33450747
Мшсещырф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl Мшсещырфможно сделать еще вот такой монтаж.
Можно, но только для одной ячейки.

вот так можно для шести:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub test2()
  Dim tR As Range
  Dim a As Range
  Dim b As Range
  
  With ActiveSheet
      Set tR = .Evaluate("C1:C6")
      Set a = .Range("A1")
      Set b = .Range("B1")
    
      tR.FormulaR1C1 = "=" & a.Address(False, False, xlR1C1, , tR) _
      & "-" & b.Address(False, False, xlR1C1, , tR)
    
  End With
End Sub

вот так для 18

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub test3()
  Dim tR As Range
  Dim a As Range
  Dim b As Range
  
  
  With ActiveSheet
      Set tR = .Range("C1:C6")
      Set a = .Range("A1:A6")
      Set b = .Range("B1:B6")
      
      
      tR.Offset(ColumnOffset:= 2 ).Formula = "=" & a( 1 ,  1 ).Address(False, False, xlA1, , tR.Offset( 0 ,  1 )) & _
       "-" & b( 1 ,  1 ).Address(False, False, xlA1, , tR.Offset( 0 ,  1 ))
         
      
      tR.Offset(ColumnOffset:= 1 ).FormulaR1C1 = "=" & a.Address(True, True, xlR1C1, , tR) _
      & "-" & b.Address(True, True, xlR1C1, , tR)
      
      tR.FormulaArray = "=" & a.Address(True, False, xlR1C1, , tR) _
      & "-" & b.Address(True, False, xlR1C1, , tR)
    
  End With
End Sub
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как правильно вставлять формулы в FormulaR1C1?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]