Проблема с FormulaR1C1 - PullRequest
       20

Проблема с FormulaR1C1

0 голосов
/ 26 сентября 2018

Мне нужна небольшая помощь с приведенной ниже формулой в VBA:

=IFERROR(VLOOKUP(J3,'Int Data'!D:J,7,0),"")

Я пытался выполнить следующее:

Range("AP2").Select    
ActiveCell.Formula = "=IFERROR((VLOOKUP(RC[-1],(J3,'Agent Table'!D:J,7,0),"")"    
Range("AP2").Select    
Selection.Copy    
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False    
Cells.Select    
Cells.EntireColumn.AutoFit

Когда я пытаюсь выполнить это утверждение -

ActiveCell.Formula = "=IFERROR((VLOOKUP(RC[-1],(J3,'Agent Table'!D:J,7,0),"")"

Я получил:

Ошибка времени выполнения '1004'

Подскажите, пожалуйста, чтоне так с этим утверждением?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы объединяете ссылки A1 и R1C1 в одной и той же формуле, этого следует избегать.

Обычно R1C1 является предпочтительным эталонным стилем для VBA.Может потребоваться еще несколько нажатий клавиш, но он обеспечивает больший контроль при доступе к ячейкам.

0 голосов
/ 26 сентября 2018

Вам нужно .FormulaR1C1, а не .Formula:

ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(R3C10,'Agent Table'!C4:C10,7, 0)"""")"

R3C10 - это обозначение R1C1 для J3.

ЕслиВы используете Macro Recorder, чтобы увидеть формулу, выберите «Использовать относительные ссылки» на вкладке разработчика, чтобы изменить способ отображения адреса:

enter image description here

...