знатоки!!! проверьте, плз, код на массив.
Sub Макрос1()
Dim Worksheet As Worksheet
Dim textRng As String
Dim ArrForTab() As Variant ' пробовал String , Range
n = 0
For Each Worksheet In ThisWorkbook.Worksheets
If Worksheet.Name <> "сводная" Then
textRng = "'" & Worksheet.Name & "'!" &
Worksheet.Range("a1:b5").Address(ReferenceStyle:=x lR)
n = n + 1
ReDim ArrForTab(n)
ArrForTab(n) = textRng
End If
Next Worksheet
ThisWorkbook.Worksheets("сводная").Cells.Select
Selection.Delete Shift:=xlUp
ThisWorkbook.PivotCaches.Add(SourceType:=xlConsoli dation, SourceData:=
Array(ArrForTab)).CreatePivotTable
TableDestination:="[Книга1.xls]сводная!R3C1", TableName:="свод"
'ThisWorkbook.Worksheets("сводная").PivotTableWiza rd
'SourceType:=xlConsolidation, SourceData:=Array(ArrForTab),
'RowGrand:=True, ColumnGrand:=False
'почему-то не работает ссылка на массив ArrForTab. Хотя, если записать все
полученные результаты «ручками»:
' ThisWorkbook.PivotCaches.Add(SourceType:=xlConsoli dation, SourceData:=
' Array("Лист1!R1C1:R5C2", "Лист2!R1C1:R5C2",
"Лист3!R1C1:R5C2")).CreatePivotTable
TableDestination:="[Книга1.xls]сводная!R3C1", TableName:="свод"
'то все получается.
End Sub
<img src="graemlins/crazy.gif" border="0" alt="[crazy]" /> :confused: <img src="graemlins/clerk.gif" border="0" alt="[clerk]" />
|