Ошибка выполнения 1004: невозможно получить свойство PivotTables класса Worksheet

Я записал этот макрос, чтобы обновить диапазон дат из 16 диаграмм. Но, как вы видите, я получаю ошибку времени выполнения.

Я смотрел на другие потоки в stackoverflow, которые относятся к этому, но никто не приближается. Ничем не помогает кнопка помощи darn на excel. Вы могли бы посоветовать? Вот код:

ActiveSheet.ChartObjects("Chart 18").Activate ActiveChart.Axes(xlCategory).Select ActiveSheet.ChartObjects("Chart 18").Activate With ActiveSheet.PivotTables("PivotTable2").PivotFields("Date") .PivotItems("Sep-15").Visible = False .PivotItems("Aug-14").Visible = True End With 

Вот простой код, который должен вас закрыть. Вам нужно будет изменить «MySheet» в этом коде на имя листа, содержащего сводную таблицу в вашей книге, и поле «Дата» должно быть действительно форматировано в формате «Mmm-YY».

 Sub ShowThirteenDatesStartingLastMonth() Sheets("MySheet").PivotTables("PivotTable2").PivotCache.Refresh Dim Dt As String With Sheets("MySheet").PivotTables("PivotTable2").PivotFields("Date") For h = 1 To .PivotItems.Count - 1 On Error Resume Next .PivotItems(h).Visible = False Next h For i = 1 To 13 On Error Resume Next Dt = Format(DateSerial(Year(Date), Month(Date) - i, 1), "Mmm-YY") .PivotItems(Dt).Visible = True Next i End With End Sub 

Трудно узнать без примера вашей книги, но я бы попробовал называть лист, а не использовать «activesheet». Как правило, это плохая идея активировать или выбрать что-либо, и вместо этого вы должны разрешить коду делать столько работы, сколько можете, не выбирая ничего. Что-то вроде этого может работать лучше:

 With Sheets("MySheet").PivotTables("PivotTable2").PivotFields("Date") .PivotItems("Sep-15").Visible = False .PivotItems("Aug-14").Visible = True End With 

Как сказал Джош, вы должны указать точное имя листа и, возможно, даже точное имя таблицы сводных данных.

Кроме того, вам следует избегать использования. .Select и вместо этого объявите переменную для каждой сводной диаграммы, например.

  • Ошибка выполнения 1004 при вводе формулы в ячейку
  • Тип ошибки времени выполнения
  • Как полностью выполнить код excel vba / как обойти ошибку во время выполнения?
  • IF ... (AND) ошибка времени выполнения инструкции "13"
  • excel 2007 метод oleobjects объекта не выполнен
  • VBA Ошибка времени выполнения 91 Ввод текста из excel в текстовое поле в новом кадре
  • Ошибка времени выполнения VBA 438
  • Ошибка 2042 на десятичных числах application.match vba
  • Excel 2003, промежуточная ошибка VBA
  • Скопируйте серию ячеек на несколько листов, названных через ячейку
  • Ошибка VBA Runtime 1004. Не удалось использовать метод AutoFilter класса Range
  • Interesting Posts

    Openpyxl не закрывает книгу Excel в режиме только для чтения

    Нужно добавить Fitler в Export to excel function

    Excel2016VBA (Mac) MkDir возвращает ошибку 75

    Произошло COMException – Неизвестное имя. (Исключение из HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME)) при попытке изменить существующий файл excel

    Вычисление разницы между неделями в Excel

    Адрес X500 вместо передачи адреса электронной почты отображается при пересылке на лист Excel

    Как определить последний ряд, используемый в VBA, включая пробелы между

    Оптимизируйте этот цикл поиска VBA в Excel

    Создание файла XLS из хранимой процедуры с использованием SSIS

    Удалить все ячейки, если не AZ

    Какой эффект имеет {1,0} в выражении IF logical_test, внутри функции массива?

    Изменить формат ticklabels

    VBA удаляет несколько строк после того, как AutoFilter одновременно использует xlCellTypeVisible, бросает ошибку

    Копирование данных на другой лист

    FilePath указывает на сопоставленный диск вместо фактического имени сервера

    Давайте будем гением компьютера.