Я пишу макрос, который вставляет некоторые формулы в массив столбцов. Я пытаюсь автоматизировать еженедельный процесс, поэтому входные файлы являются переменными и выбираются с помощью приложения msoFileDiaglogFilePicker
.
Dim wb_Final As Workbook, nameFinal As String
Set wb_Final = Workbooks.Open(Filename:=Final_Directory)
nameFinal = wb_Final.Name
Dim wb_Summary As Workbook, nameSummary As String
Set wb_Summary = Workbooks.Open(Filename:=Summary_Directory)
nameSummary = wb_Summary.Name
wb_Summary.Sheets("Sheet 1").Activate
With Sheets("Sheet 1")
.Range("AT4:AT5000").Formula = "=IF(OR(AX1=""Open"",AX1=""Won"",AX1=""Won - Pending""),""Yes"",""No"")"
.Range("AU4:AU5000").Formula = "=VLOOKUP(W:W,LOVs!H:I,2,FALSE)"
.Range("AV4:AV5000").Formula = "=IF(IFERROR(VLOOKUP($A:$A,'[" & nameFinal & "]DATA'!$A:$AK,34,FALSE),0)=0,"",VLOOKUP($A:$A,'[" & nameFinal & "]DATA'!$A:$AK,34,FALSE))"
.Range("AW4:AW5000").Formula = "=IF(IFERROR(VLOOKUP($AV:$AV,'[" & nameFinal & "]DATA'!$AH:$CX,48,FALSE),0)=0,"",VLOOKUP($AV:$AV,'[" & nameFinal & "]DATA'!$AH:$CX,48,FALSE))"
'....More formulas similar to above
End With
Первые две формулы помещаются в ячейки и вычисляются без проблем.
Третья формула помещается в ячейки в виде текста с апострофом перед ним в Excel. (т.е. '=IF(IFERROR(VLOOKUP...
)
Четвертая формула генерирует Ошибка времени выполнения '1004'
Я пробовал все различные типы формул:
.Formula
.FormulaR1C1
.FormulaLocal
.FormulaR1C1Local
И все равно получите ту же ошибку.
Мне кажется, что я сталкиваюсь с подобной проблемой, описанной в этой статье , но я не могу использовать функцию Application.Vlookup
без переопределения всех массивов и ссылок на столбцы в моих текущих функциях VLOOKUP. (что займет ОЧЕНЬ много времени).
Любая помощь будет высоко ценится