Написать заявление IF, используя FormulaR1C1 в VBA Excel - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть следующая формула =IF((GLOBAL_DATE-30)<G2,"1 Month",IF((GLOBAL_DATE-60)<G2,"2 Month",IF((GLOBAL_DATE-90)<G2,"3 Month","Older Than 3 Months"))), и я хотел бы записать это в определенные ячейки, используя FormualR1C1 в VBA.(GLOBAL_DATE - это именованная ячейка на другом листе)

Спасибо

Ответы [ 3 ]

1 голос
/ 20 февраля 2012

Выберите ячейку с этой формулой.В VBE перейдите в окно Immediate и введите

?Activecell.FormulaR1C1

и нажмите ввод.Это даст вам перевод формулы R1C1.

0 голосов
/ 20 февраля 2012

Вы можете легко использовать VBA, чтобы перевести те формулы, которые вы ввели в лист, в синтаксис, подходящий для VBA.Однажды я написал суб для этой цели.

0 голосов
/ 20 февраля 2012

Это то, что я получаю, используя Macro Recorder:

ActiveCell.FormulaR1C1 = _
    "=IF((GLOBAL_DATE-30)<R[1]C[6],""1 Month"",IF((GLOBAL_DATE-60)<R[1]C[6],""2 Month"",IF((GLOBAL_DATE-90)<R[1]C[6],""3 Month"",""Older Than 3 Months"")))"

То есть использует относительные адреса ячеек (R [1] C [6] - ячейка на одну строку ниже и 6 столбцов справа отActiveCell. В качестве альтернативы можно использовать абсолютные адреса, заменив R [1] C [6] на R2C7 (для строки 2, столбец 7 = G2).

...