2013-04-10 3 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 Pivot? См. [MSDN: Свойство PivotField.VisibleItemsList] (http://msdn.microsoft.com/en-us/library/office/bb242470 (v = office.12) .aspx) –

ответ

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