Добавление функции в виде массива в ячейку или диапазон ячеек - PullRequest
0 голосов
/ 07 февраля 2019

Как добавить формулу, настроенную как массив, в ячейку с помощью 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

она окажется в ячейке, но в виде строки, и если я удалю {}, функция вернет значения, как и ожидалось.(Таким образом, строка создана правильно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...