Как использовать formular1c1 в vba (с примерами)
Вы можете использовать свойство FormulaR1C1 в VBA для создания абсолютной или относительной ссылки на определенную ячейку на листе.
Существует два распространенных способа использования этого свойства:
Способ 1. Используйте формулу R1C1 для создания абсолютной ссылки.
Sub MultipyCell()
Range(" C5 ").FormulaR1C1 = " =R1C1*20 "
End Sub
Когда вы запустите этот конкретный макрос, ячейка C5 отобразит результат ячейки в строке 1 и столбце 1 , умноженный на 20.
Способ 2. Используйте формулу R1C1, чтобы создать относительную ссылку.
Sub MultipyCell()
Range(" C5 ").FormulaR1C1 = " =R[-4]C[-2]*20 "
End Sub
Когда вы запустите этот конкретный макрос, ячейка C5 отобразит результат ячейки на 4 строки выше и 2 столбца слева от нее, умноженный на 20.
В следующих примерах показано, как использовать каждый метод на практике с листом Excel, содержащим значение 10 в ячейке A1 :
Пример 1. Используйте формулу R1C1 для создания абсолютной ссылки.
Мы можем создать следующий макрос, чтобы умножить значение ячейки в строке 1 и столбце 1 на 20 и отобразить результаты в ячейке C5 :
Sub MultipyCell()
Range(" C5 ").FormulaR1C1 = " =R1C1*20 "
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Мы видим, что Excel использовал формулу =$A$1*20 для вычисления результата в ячейке C5 .
Поскольку мы использовали R1C1 в нашей формуле в VBA, мы сделали абсолютную ссылку на ячейку в первой строке и первом столбце, то есть на ячейку A1 .
Пример 2. Используйте формулу R1C1 для создания относительной ссылки.
Мы можем создать следующий макрос, чтобы умножить значение ячейки, которая находится на 4 строки выше и 2 столбца слева от ячейки C5 , на 20 и отобразить результаты в ячейке C5 :
Sub MultipyCell()
Range(" C5 ").FormulaR1C1 = " =R[-4]C[-2]*20 "
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Мы видим, что Excel использовал формулу =A1*20 для вычисления результата в ячейке C5 .
Поскольку в нашей формуле в VBA мы использовали круглые скобки с R[-4]C[-2] , мы сделали относительную ссылку на ячейку, расположенную на 4 строки выше и на 2 столбца слева от ячейки C5 , которая является ячейкой A1 .
Примечание . Полную документацию по свойству VBA FormulaR1C1 можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: простая формула «Если ячейка содержит»
VBA: как подсчитать вхождение символов в строку
VBA: как проверить, содержит ли строка другую строку