Ответ 1
Я бы обновил формулу в C1. Затем скопируйте формулу из C1 и вставьте ее до C10...
Не уверен насчет более элегантного решения
Range("C1").Formula = "=A1+B1"
Range("C1").Copy
Range("C1:C10").Pastespecial(XlPasteall)
Это простая демонстрация того, что я хочу сделать. Я хочу установить формулу для диапазона ячеек (например, от C1 до C10).
Range("C1").Formula = "=A1+B1"
но как заставить динамические ячейки использовать формулу следующим образом:
Range("C1:C10").Formula = "=Ax+Bx"
поэтому на самом деле это похоже на
C1 = A1 + B1
C2 = A2 + B2
C3 = A3 + B3
C4 = A4 + B4
C5 = A5 + B5
...
C10 = A10 + B10
как изменить RHS этой формулы, чтобы сделать выше работу: Range("C1:C10").Formula = "=Ax+Bx"
Я бы обновил формулу в C1. Затем скопируйте формулу из C1 и вставьте ее до C10...
Не уверен насчет более элегантного решения
Range("C1").Formula = "=A1+B1"
Range("C1").Copy
Range("C1:C10").Pastespecial(XlPasteall)
Range("C1:C10").Formula = "=A1+B1"
Просто как это.
Это автозаполнение (FillDown) диапазона с формулой.
Использовать FormulaR1C1:
Cells((1,3),(10,3)).FormulaR1C1 = "=RC[-2]+RC[-1]"
В отличие от Формулы, FormulaR1C1 имеет относительную привязку.
Я думаю, что это самый простой ответ: 2 строки и очень понятные. Он эмулирует функциональность перетаскивания формулы, написанной в ячейке, в диапазоне ячеек.
Range("C1").Formula = "=A1+B1"
Range("C1:C10").FillDown
Если вы хотите заполнить столбец, вы можете сделать это в Excel 2010 с помощью одной команды клавиатуры:
Ctrl-D либо заполнит выбранную строку, либо заполнит выбранный массив или столбец. Относительная привязка применяется.
Используйте этот
Sub calc()
Range("C1:C10").FormulaR1C1 = "=(R10C1+R10C2)"
End Sub