同一工作表中的VBA -Place数据透视表

时间:2016-08-24 17:14:41

标签: excel vba

VBA新手,我的宏在使用我的数据在同一工作表上创建数据透视表时遇到困难(例如,在" I1"列中启动数据透视表)。我已经能够运行宏来选择工作表中的所有数据,然后在另一个工作表上创建此数据。由于我需要在同一工作簿上循环遍历多个工作表以创建多个数据透视表,因此使用单独的工作表是不可行的。

每个工作表具有相同数量的列,行数不同。我的目标是让宏查看每个工作表并在其旁边输出一个数据透视表。

我觉得我下面的宏没有引用正确的数据透视表目的地。任何帮助将不胜感激。

Sub Macro4()  
'  
'Macro4 Macro  
'

'  
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row  
DataSheet = ActiveSheet.Name

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
DataSheet & "!R1C1:R" & FinalRow & "C8", Version:=xlPivotTableVersion15). _
CreatePivotTable TableDestination:=DataSheet & "!R1C9", TableName:= _
"PivotTable4", DefaultVersion:=xlPivotTableVersion15

Sheets(DataSheet).Select  
Cells(1, 9).Select  
With ActiveSheet.PivotTables("PivotTable4").PivotFields("Document Type") 
    .Orientation = xlRowField.Position = 1  
End With  
With ActiveSheet.PivotTables("PivotTable4").PivotFields("Accounting Event")    
    .Orientation = xlRowField.Position = 2  
End With  
With ActiveSheet.PivotTables("PivotTable4").PivotFields("Document Number")
    .Orientation = xlRowField.Position = 3  
End With  
ActiveSheet.PivotTables("PivotTable4").AddDataField ActiveSheet.PivotTables
( _"PivotTable4").PivotFields("Amount"), "Sum of Amount", xlSum

End Sub  

1 个答案:

答案 0 :(得分:1)

尝试以下代码,使用一种不同的方法,定义PasswordWorksheet.ProtectRange,您可以根据需要轻松修改它们:

PivotTable