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