Ошибка времени выполнения «5»: неверный вызов или аргумент процедуры во время запуска макроса

Я использую код VBA для динамического изменения диапазона источников данных сводной таблицы . Лист, содержащий сводную таблицу, находится на другом листе ( Sheet7 ) (в том же файле excel), а источник данных находится в Sheet2, а макрос работает в Sheet9, то есть на другом листе, который является источником данных и сводной таблицей. При запуске ошибки с ошибками кода: Ошибка времени выполнения '5': Неверный вызов или аргумент процедуры (Примечание: все листы имеют один и тот же файл excel)

Код выглядит следующим образом:

Sub UPDATE_BUTTON() 'PURPOSE: Automatically readjust a Pivot Table's data source range 'SOURCE: www.TheSpreadsheetGuru.com/The-Code-Vault Dim Data_sht As Worksheet Dim Pivot_sht As Worksheet Dim StartPoint As Range Dim DataRange As Range Dim PivotName As String Dim NewRange As String 'Set Variables Equal to Data Sheet and Pivot Sheet Set Data_sht = ThisWorkbook.Worksheets("Sheet2") Set Pivot_sht = ThisWorkbook.Worksheets("Sheet7") 'Enter in Pivot Table Name PivotName = "A" 'Dynamically Retrieve Range Address of Data Set StartPoint = Data_sht.Range("A1") Set DataRange = Data_sht.Range(StartPoint, StartPoint.SpecialCells(xlLastCell)) NewRange = Data_sht.Name & "!" & _ DataRange.Address(ReferenceStyle:=xlR1C1) 'Make sure every column in data set has a heading and is not blank (error prevention) If WorksheetFunction.CountBlank(DataRange.Rows(1)) > 0 Then MsgBox "One of your data columns has a blank heading." & vbNewLine _ & "Please fix and re-run!.", vbCritical, "Column Heading Missing!" Exit Sub End If 'DataArea = "Sheet7!R1C1:R" & Selection.Rows.Count & "C" & Selection.Columns.Count 'Change Pivot Table Data Source Range Address Pivot_sht.PivotTables(PivotName).ChangePivotCache _ ThisWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=NewRange) 'Ensure Pivot Table is Refreshed Pivot_sht.PivotTables(PivotName).RefreshTable 'Complete Message MsgBox PivotName & "'s data source range has been successfully updated!" End Sub 

То же самое вызывает ошибку в строке:

 Pivot_sht.PivotTables(PivotName).ChangePivotCache _ ThisWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=NewRange) 

Если я изменил то же самое:

 ThisWorkbook.Worksheets("Sheet7").PivotCaches.Create( _ 

Он дает ошибку времени выполнения «438»: объект не поддерживает это свойство или метод

PivotCaches привязан к рабочей PivotCaches , а не к листу. https://msdn.microsoft.com/en-us/vba/excel-vba/articles/pivotcaches-object-excel

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