R1C1 Формула результата дает дважды заданную переменную - PullRequest
0 голосов
/ 10 июля 2019

Я хочу нормализовать некоторые данные и хочу, чтобы эти нормализованные данные динамически изменялись при изменении данных, поэтому я хочу поместить формулу в ячейки, которые ссылаются на разные ячейки. Но это не совсем относится к проблеме, потому что даже самая простая формула (показанная ниже) не работает.

Public Sub Test()
    a = 15
    Cells(a, 8).FormulaR1C1Local = "=Z(" & a & ")S7"
End Sub

Формула в клетке (15,8): =$G30.
Я ожидал следующий вывод: =$G15.

На многих форумах, где люди спрашивают, как поместить переменные в R1C1Formula, ответ таков: [" & a & "], но это дает ошибку времени выполнения 1004, поэтому я попытался вместо этого (), и она не выдает мне никаких предупреждений. , но результат не тот, который я ожидал.

1 Ответ

1 голос
/ 10 июля 2019

Вам необходимо понимать правила R1C1 в терминах относительных и абсолютных ссылок.

R15C7 является абсолютным: строка 15 и столбец 7 = $G$15.

R[15]C7 является относительной строкой и означает: строку, в которой формула находится в плюс 15 строк и столбец 7. Если формула в строке 15, то = $G30.

RC7 означает: строку, в которой находится формула, и столбец 7. Если формула находится в строке 15, то = $G15.

Public Sub Test()
 a = 15
 Cells(a, 8).FormulaR1C1 = "=R[" & a & "]C7" '$G30
 Cells(a, 8).FormulaR1C1 = "=R" & a & "C7"   '$G$15
 Cells(a, 8).FormulaR1C1 = "=RC7"            '$G15
End Sub

Переведено на ваш язык Zeile / Spalte Z1S1:

Public Sub Test()
 a = 15
 Cells(a, 8).FormulaR1C1Local = "=Z(" & a & ")S7" '$G30
 Cells(a, 8).FormulaR1C1Local = "=Z" & a & "S7"   '$G$15
 Cells(a, 8).FormulaR1C1Local = "=ZS7"            '$G15
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...