2015-02-12 7 views
1

У меня есть процедура 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])"

я получаю ту же ошибку

+0

Вам кажется, что отсутствует имя таблицы из формулы. – Rory

+0

Спасибо. Позвольте мне изучить это. Я использовал макрорекордер для синтаксиса промежуточного итога, чтобы он мог сделать некоторые неправильные предположения. –

+0

Формула, которую вы должны работать, если она находится в строке итогов, которая является частью таблицы, но если нет, вам нужно указать имя таблицы: '= SUBTOTAL (109, таблица1 [cash: всего 5 лет])' например , – Rory

ответ

1

The формула у вас есть должны работать до тех пор, как она находится в Totals Роу, который является частью таблицы, но если нет, то вам необходимо включить имя таблицы:

=SUBTOTAL(109,Table1[cash: 5 year total]) 

, например

+0

Это был большой улов. Я доверял Macro Recorder, чтобы предоставить детали, которые мне нужны. Это не так. Я не являюсь разработчиком VBA. Кроме того, это было здорово, потому что вся документация, которую я нашел в Интернете, не упоминала ссылку на имя таблицы в формуле промежуточного итога, и, конечно, сообщение об ошибке не помогло. Спасибо, Рори! –

Смежные вопросы