Как добавить формулу, настроенную как массив, в ячейку с помощью VBA?
Когда я набираю функцию непосредственно в одной ячейке, она возвращает значения в диапазон ячеек.
Пример.
В ячейке N34 I введите {= myFunction ("datacollector"; "nameOfVariable"; "startDate"; "endDate"; TRUE)}
Функция возвращает значения в ячейках с N34 по P59.
Когда в VBA я создаю строку функции и пытаюсь вставить ее в ячейку, я получаю ошибку во время выполнения.
Я создаю строку функции без {} и с данными из других ячеек.
Код:
tempStr = "=myFunction(""" & Sheet1.Cells(2,1) & """;""" & Sheet1.Cells(3,1) & """;""" & Sheet1.Cells(4,1) & """;""" & Sheet1.Cells(4,1) & "TRUE" ")"
Sheet1.Cells(34,14).FormulaArray = tempStr
also tried
Sheet1.Range("N34:P59").FormulaArray = tempStr
Я получаю
Ошибка времени выполнения '1004'
Если я впервые добавлю{} вокруг строки функции
tempStr = "{=myFunction(""" & Sheet1.Cells(2,1) & """;""" & Sheet1.Cells(3,1) & """;""" & Sheet1.Cells(4,1) & """;""" & Sheet1.Cells(4,1) & "TRUE" ")}"
Sheet1.Cells(34,14).FormulaArray = tempStr
она окажется в ячейке, но в виде строки, и если я удалю {}, функция вернет значения, как и ожидалось.(Таким образом, строка создана правильно.)