Application.Evaluate (item) всегда использует первую строку в качестве базы, почему? - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть несколько табличных формул, сохраненных в списке, которые я хотел бы запускать в каждой строке, пока не получу результат. Когда я использую приведенный ниже код, в формулах всегда используется первая строка таблицы в качестве основы.

For Each rng In sqltabel.ListColumns("coloum1").DataBodyRange.Rows
    For Each item In arr    
        rng.Offset(0, sqlcolumn) = Application.Evaluate(item)

Формула в 'arr' может выглядеть как

=IFS(tabel1[@[column10]]="stack";"overflow")

Таким образом, если первая строка, column10, содержит «stack», формулы всех остальных строк будут заканчиваться на той же формуле и будут выводить «переполнение» как результат. Что я делаю не так, или я не понимаю приложение Evaluate?

В качестве быстрого исправления я использую приведенный ниже код, но я надеялся избежать его, поскольку он замедляет макрос.

rng.Offset(0, sqlcolumn).FormulaArray = _
item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...