Я использую Excel 2010, и мне не удалось вызвать макрос. У меня есть три листа, в которых отображается моя диаграмма (лист 1), и в ней находится таблица для динамической диаграммы, рабочий лист для ввода необработанных данных (лист 2) и, наконец, рабочий лист, на котором данные отформатированы из необработанных данных по формулам (Лист 3).Не удается вызвать макрос
Макрос для вставки новой строки в таблице выглядит следующим образом:
Sub SBTrend()
'
' SBTrend Macro
'
'
Sheets("Sheet 1").Select
Selection.ListObject.ListRows.Add AlwaysInsert:=True
Range("BA10").Select
End Sub
код, который я должен вызвать макрокоманду в лист 3 следующим образом:
Private Sub Worksheet_Calculate()
Static OldVal As Variant
If Range("A9").Value <> OldVal Then
OldVal = Range("A9").Value
Call SBTrend
End If
End Sub
Однако, Я всегда столкнулся с ошибкой «Ошибка времени выполнения 91»: переменная объекта или с не заданной переменной блока ». И когда я отлаживаю, эта строка подсвечивается:
Selection.ListObject.ListRows.Add AlwaysInsert:=True
Я бы очень признателен за любую помощь, которую я могу получить. Всем спасибо.
Вам нужно удалить «Выбор» - событие расчета может срабатывать, когда рабочий лист не активен. – Comintern
http://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/9292/avoid-using-select-or-activate#t=201609072355160036164 может представлять интерес – pnuts