我想从不同的工作表中做一个PIVOT表,并将每个PIVOT输出插入到某个表中。如何动态定义PIVOT表源码?
Sub PivotvpcodeSATURATION()
Dim wsNew As Worksheet
Dim i As Integer
Dim z As Integer
Set ws1 = ActiveWorkbook.Sheets("24.11.")
Set ws2 = ActiveWorkbook.Sheets("25.11.")
Set ws3 = ActiveWorkbook.Sheets("26.11.")
Set ws4 = ActiveWorkbook.Sheets("27.11.")
Set ws5 = ActiveWorkbook.Sheets("28.11.")
Set ws6 = ActiveWorkbook.Sheets("29.11.")
Set ws7 = ActiveWorkbook.Sheets("30.11.")
Set wsNew = Sheets.Add
i = 3
z = 16
Do
ws1.Select
Range("A2").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"24.11.!R1C2:R11754C10", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:=wsNew.Name & "!R3C1", TableName:="PivotTable", DefaultVersion _
:=xlPivotTableVersion14
wsNew.Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable").PivotFields("VP CODE")
.Orientation = xlRowField
.Position = 1
End With
wsNew.Select
ActiveSheet.PivotTables("PivotTable").AddDataField ActiveSheet.PivotTables(_
"PivotTable").PivotFields("1/0"), "Sum of 1/0", xlSum
wsNew.Select
Range("B4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("VP_Saturation").Select
' Range(Cells(3, z).Address).Select
ActiveSheet.Paste
Application.DisplayAlerts = False
wsNew.Delete
Application.DisplayAlerts = True
z = z + 2
Loop Until z = 28
End Sub
我是不能够达到的事情,
如何定义一个工作表名作为变量,这样我就不必选择W1,W2,W ..,WN每次,并且不必在24.11内放置表名。!R1C2:R11754C10。
以及插入复制数据透视结果的列名称我定义为变量单元格(3,z).Address.Select,但此字符串返回错误。
也许有人可以帮忙吗?谢谢!
谢谢,它有帮助。唯一不能管理顺序循环的东西?如果我说:'对于每周DayWeek2在第二周做... z = z + 2下一个DayWeek2循环直到z = 29'它给出一个错误 – Ale 2014-12-10 11:18:58
你的'next'和'循环直到'是错误的方式,循环必须是在彼此之内,也就是说'Do'在'for'循环中,直到''next'之前'也必须在里面 – Raugmor 2014-12-10 15:43:07