У меня есть процедура VBA, которая извлекает некоторые данные из базы данных, выгружает ее в рабочий лист, добавляет строку заголовка, преобразует все это в таблицу. Этот бит работает нормально. Возвращаемые данные имеют неопределенное количество строк. Что мне нужно сделать, чтобы добавить итоговую строку в конце. Я искал учет неизвестной длины таблицы, используя функцию промежуточного итога: например, SUBTOTAL(109,[5 year total])
.Использование формулы промежуточного итога в VBA для Excel
Проблема я получаю
Run-time error '1004': Application-defined or object-defined error
Этот код работает
Range(upperleft).End(xlDown).Offset(1, 6).Value = "Test cash 5 year total"
где, как этот код бросает ошибку
Range(upperleft).End(xlDown).Offset(1, 6).Formula = "=SUBTOTAL(109,[cash: 5 year total])"
Переменная upperleft
- верхняя левая ячейка таблицы. Кажется, что-то делать со строкой я использую для формулы/значение, так как если я пытаюсь установить формулу значения, как это
Range(upperleft).End(xlDown).Offset(1, 6).Value= "=SUBTOTAL(109,[cash: 5 year total])"
я получаю ту же ошибку
Вам кажется, что отсутствует имя таблицы из формулы. – Rory
Спасибо. Позвольте мне изучить это. Я использовал макрорекордер для синтаксиса промежуточного итога, чтобы он мог сделать некоторые неправильные предположения. –
Формула, которую вы должны работать, если она находится в строке итогов, которая является частью таблицы, но если нет, вам нужно указать имя таблицы: '= SUBTOTAL (109, таблица1 [cash: всего 5 лет])' например , – Rory