2013-04-10 55 views
0

我想將數組傳遞到數據透視表字段,但這樣做時excel會引發運行時錯誤:1004錯誤「應用程序定義或對象定義的錯誤」。下面是我用VBA編寫的代碼段:嘗試傳遞數組時遇到應用程序定義錯誤或對象定義錯誤

Sub ARRAYER() 
    Dim i As Double 
    Dim ALM(8) As String 

    Sheet15.PivotTables("significance_pivot2").PivotFields("Pagename"). _ 
    ClearAllFilters 
    For i = 1 To 8 
     ALM(i) = CStr(Sheet4.Range("F" + CStr(i + 2) + "").Text) 
    Next 

    For i = 1 To 8 
     Sheet4.Range("AA" & i).Value = ALM(i) 
    Next i 

    Sheet15.PivotTables("significance_pivot2").PivotFields("Pagename").VisibleItemsList = Array(ALM)-- It trows an error here!!! 

End Sub 
+0

是它的一個OLAP透視表?請參閱[MSDN:PivotField.VisibleItemsList屬性](http://msdn.microsoft.com/en-us/library/office/bb242470(v = office.12).aspx) – 2013-04-10 10:28:48

回答

0

也許嘗試這樣的一種替代方案:

Sub ARRAYER() 
Dim i As Double 
Dim ALM() As String ' dimensioned automatically by VBA on assignment from Range 

Sheet15.PivotTables("significance_pivot2").PivotFields("Pagename"). _ 
ClearAllFilters 

ALM = CStr(Sheet4.Range("F3:F11".value) 

' maybe just copy the source data directly? 
range("F3:F11").copy destination:= range("AA3") 

Sheet15.PivotTables("significance_pivot2").PivotFields("Pagename").VisibleItemsList = Array(ALM())-- Changed to add brackets 

End Sub 
相關問題