2015-11-25 60 views
1

我正在尝试使用另一个人创建的某个VBA,它给了我一个我似乎无法修复的错误。下面的代码:在无法获得工作表类的数据透视表属性

Sub Format_Homeward_V3() 
' Format_Homeward_V3 Macro 
    ChDir "J:\Templates" 
    Workbooks.Open Filename:= _ 
     "J:\Templates\Homeward_Exception_Report_Template_Final.xlsx" 
    Workbooks.Open Filename:= _ 
     "J:\Templates\Homeward_Inventory_Report_Template_Final.xlsx" 
    Range("A4").Select 
    Sheets("Homeward_Summary").PivotTables("MyPivot").PivotCache.Refresh 
    Sheets("Detail").Select 
    Range("A1").Select 

它的错误了:

Sheets("Homeward_Summary").PivotTables("MyPivot").PivotCache.Refresh 

,并给出了错误:

"unable to get the pivottables property of the worksheet class"

但据我可以告诉它正在寻找合适的板材和数据透视表的正确名称。我也试着做.RefreshTable而不是缓存刷新,但得到了同样的错误。我不知道为什么它会给我这个错误,而且我不知道还有什么可以尝试的。它一直在没有这个错误的工作。

+0

你得到了什么号码,当你'? Sheets(“Homeward_Summary”).PivotTables.Count'在立即窗口中? –

+0

@ScottHoltzman 1 – msim

+0

你确定数据透视表的名字是你认为的吗?如果你右键点击数据透视表,然后转到属性名称说什么?或者你可以在'立即窗口'中的'Sheets(“Homeward_Summary”).PivotTables(1).Name'获取名称。 –

回答

1

确保所有被引用,那么有没有猜测哪些工作簿或片状您要处理(原谅速记,根据需要改变)

Sub Format_Homeward_V3() 
Dim wbe As Workbook 
Dim wbi As Workbook 
Dim ws As Worksheet 
Set wbe = Workbooks.Open("J:\Templates\Homeward_Exception_Report_Template_Final.xlsx") 
Set wbi = Workbooks.Open("J:\Templates\Homeward_Inventory_Report_Template_Final.xlsx") 
Set ws = wbi.Sheets("PIVOT") 
ws.Range("A4").Select 
ws.PivotTables("MyPivot").PivotCache.Refresh