С макросами Excel VBA я создаю таблицу excel (listobject), которая содержит несколько столбцов данных (со значениями в них) и один столбец с формулами. Эти формулы различны для каждой строки. Эти формулы строятся и хранятся в массиве с помощью vba и помещаются в столбец только один раз в конце. Это необходимо для скорости.Поместите формулы из массива в столбец таблицы Excel
Моя проблема заключается в том, что полученные формулы, хранящиеся в столбце, идентичны. Это один из первого элемента массива.
Примечания:
- В "AutoFillFormulasInLists" установлен в FALSE.
- Если я пытаюсь хранить значения вместо формул, все работает нормально.
- Если я попытаюсь сделать ту же логику, но поставил формулы в простой диапазон ячеек, все будет хорошо.
Вот очень упрощенный пример кода я использую, чтобы pupulate столбец таблицы с формулами:
Dim sformulas(1 To 3) As String
sformulas(1) = "=""x"""
sformulas(2) = "=""y"""
sformulas(3) = "=""z"""
ActiveSheet.ListObjects("Table1").ListColumns("ColumnX").DataBodyRange.Formula = Application.Transpose(sformulas)
Полученная формула в ColumnX все = «х»
Но я ожидал бы иметь = "x", = "y" и = "z"
Есть ли способ сохранить правильную формулу в таблице?
Спасибо за ваш ответ. Однако мне действительно нужно хранить сложные формулы excel не только константы, но и ценности. "=" x "" был просто способом ввода формулы. Формулы, которые я буду использовать, используют функции с ячейками той же таблицы, а также ячейки других рабочих листов. Мне действительно нужно найти решение, в котором я могу ввести сложную формулу в таблицу. Единственная работа, которую я нашел, - создать диапазон имен за пределами таблицы excel, где я храню массивы формул, а затем использовать этот диапазон имен, используя функцию INDEX() внутри таблицы excel, чтобы получить результирующие значения. – Martin
Вы просто обертываете функцию в кавычки, например '' = "" Среднее (A1: A5) "" "" или есть строковая константа в ваших уравнениях, например '' = CONCATENATE (A1, "sales" ")" ' ? – cheezsteak