Подтвердить что ты не робот

Какова функция FormulaR1C1?

Я смотрел на FormulaR1C1 как функцию, как это точно работает? Я понимаю, что было сказано по всему Интернету, которое стоит как 1-й столбец 1, но как люди на самом деле заставляют его работать? Что такое конечный результат использования FormulaR1C1?

Также его можно изменить, чтобы начать с определенной точки на листе или всегда будет R1C1? Так может ли это быть FormulaR2C3?

4b9b3361

Ответ 1

FormulaR1C1 имеет то же поведение, что и Формула, только с использованием аннотации стиля R1C1 вместо аннотации A1. В аннотации A1 вы должны использовать:

Worksheets("Sheet1").Range("A5").Formula = "=A4+A10"

В R1C1 вы должны использовать:

Worksheets("Sheet1").Range("A5").FormulaR1C1 = "=R4C1+R10C1"

Он не действует на столбец 1-й строки 1, он действует на целевую ячейку или диапазон. Столбец 1 совпадает с столбцом A, поэтому R4C1 совпадает с A4, R5C2 является B5 и т.д.

Команда не изменяет имена, изменяется целевая ячейка. Например, для вашего R2C3 (также известного как C2):

Worksheets("Sheet1").Range("C2").FormulaR1C1 = "=your formula here"

Ответ 2

Вот некоторая информация из моего блога о том, как мне нравится использовать formular1c1 вне vba:

Вы только что закончили писать формулу, скопировали ее на всю электронную таблицу, отформатировали все, и вы осознали, что забыли сделать ссылку абсолютной: каждая формула должна была ссылаться на Cell B2, но теперь все они ссылаются на разные ячейки.

Как вы собираетесь делать Find/Replace на ячейках, учитывая, что у него есть B5, другой C12, третий D25 и т.д. и т.д.?

Самый простой способ - обновить свой стиль ссылки до R1C1. Ссылка R1C1 работает с относительным позиционированием: R обозначает строку, C колонку и числа, которые следуют за R и C, являются либо относительными положениями (между []), либо абсолютными положениями (нет []).

Примеры:

  • R [2] C относится к ячейке на две строки ниже ячейки, в которой формулы в
  • RC [-1] относится к ячейке один столбец слева
  • R1C1 ссылается на ячейку в первой строке и первой ячейке ($ A $1)

Какое это имеет значение? Ну, когда вы написали свою первую формулу в начале этого сообщения, B2 была ячейкой на 4 строки выше ячейки, в которую вы ее ввели, т.е. R [-4] C. Когда вы копируете его попеременно и вниз, в то время как ссылка A1 изменяется, ссылка R1C1 не делает. Во всей электронной таблице, ее R [-4] C. Если вы переключитесь на R1C1 Reference Style, вы можете заменить R [-4] C на R2C2 ($ B $2) простым проводом Find/Replace и выполнить один махал.

Ответ 3

Я нахожу наиболее ценную особенность .FormulaR1C1 - это чистая скорость. В отличие от пары очень больших петель, заполняющих некоторые данные в лист, Если вы можете конвертировать то, что вы делаете, в форму .FormulaR1C1. Затем выполняется одна операция, например myrange.FormulaR1C1 = "моя конкретная формаула" ослепительно быстро (может быть в тысячу раз быстрее). Нет циклов и подсчета - просто заполните диапазон на высокой скорости.