2015-03-20 2 views
0

У меня есть 3 сводные таблицы на 2 листах в более чем 30 файлах, поэтому я попытался использовать vba для их автоматического обновления. Проблема в том, что я получаю ошибку 438. Я не знаю, почему она появляется. Мой код:VBA Excel, Update pivot

Sub update() 
    Dim sht As Worksheet 
    Dim SrcData As String 
    Dim pvtCache As PivotCache 

Sheets("Raw Data").Select 

    SrcData = ("Raw Data") & "!" & Range("$A$9:$M$100000").Address(ReferenceStyle:=xlR1C1) 

    Set pvtCache = ActiveWorkbook.PivotCaches.Create(_ 
    SourceType:=xlDatabase, _ 
    SourceData:=SrcData) 

Sheets("Cost Week_Month").Select'This contain 2 tables, the same source data 
ActiveSheet.PivotTables("PivotTable1").ChangePivotCache (pvtCache) 

Sheets("View Week_Month").Select 
ActiveSheet.PivotTables("PivotTable10").ChangePivotCache (pvtCache) 

End Sub 
+0

Установить перерыв во всех ошибках, по крайней мере, вы можете узнать, в какой строке произошла ошибка: –

+0

ActiveSheet.PivotTables («PivotTable1»). ChangePivotCache (pvtCache) эта строка – user3683947

+0

Какой из них у вас есть две строки. У вас есть сводная таблица1 на обоих листах? –

ответ

1

Это, вероятно, эта линия:

SrcData = ("Raw Data") & "!" & Range("$A$9:$M$100000").Address(ReferenceStyle:=xlR1C1) 

Вы хотите сказать, что использовать ссылки R1C1 стиль, но подачи "LetterNumber" ссылку.

+0

ActiveSheet.PivotTables («PivotTable1»). ChangePivotCache (pvtCache) Эта строка создает проблемы – user3683947

+0

Диапазон («R9C1: R200000C14») также не работает – user3683947

+0

Я бы сбросил параметр «ReferenceStyle», но в любом случае это, похоже, не является источником проблемы. – FreeMan

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