Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как правильно вставлять формулы в FormulaR1C1? / 8 сообщений из 8, страница 1 из 1
20.12.2005, 18:08:55
    #33447498
klopik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вставлять формулы в FormulaR1C1?
Имеется столбец в 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
20.12.2005, 18:42:08
    #33447592
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вставлять формулы в FormulaR1C1?
Range("Разница").FormulaR1C1 = "=RC[-1]-RC[-2]"
...
Рейтинг: 0 / 0
21.12.2005, 09:54:15
    #33448279
klopik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вставлять формулы в FormulaR1C1?
Нет, ну это я знаю. Это если макрос записать - так и получится!
А вот если нужно вместо цифр вставлять переменные? Типа
Код: plaintext
1.
Range("Разница").FormulaR1C1 = "=RC[-a]-RC[-b]"
То что я написал не работает...
Как правильно в эту строчку вставить переменные а и b?
...
Рейтинг: 0 / 0
21.12.2005, 10:00:51
    #33448295
klopik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вставлять формулы в FormulaR1C1?
Вроде получилось. Как-то криво, однако работает:
Код: plaintext
1.
2.
mystring = "=RC[-" & a & "]-RC[-" & b & "]"
Range("Разница").FormulaR1C1 = mystring
...
Рейтинг: 0 / 0
21.12.2005, 18:30:57
    #33450242
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вставлять формулы в FormulaR1C1?
А что у тебя в этих переменных то?
Если переменные 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
21.12.2005, 19:15:05
    #33450368
Мшсещырф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вставлять формулы в FormulaR1C1?
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
21.12.2005, 23:08:36
    #33450683
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вставлять формулы в FormulaR1C1?
Мшсещырфможно сделать еще вот такой монтаж.
Можно, но только для одной ячейки.
...
Рейтинг: 0 / 0
22.12.2005, 01:38:38
    #33450747
Мшсещырф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно вставлять формулы в FormulaR1C1?
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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как правильно вставлять формулы в FormulaR1C1? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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