我试图获取一系列数据,转置它然后将其转换为数据透视表。
我已经编写了代码来抓取数据,复制/粘贴/转置它。然后我假设我将该选择转换为Pivot缓存。
我想知道,如果有更有效的方法来获取原始选择,请将其直接转置到数据透视缓存中以创建数据透视表。从某种意义上说,跳过粘贴。
换句话说,我可以将Pivot Cache定义为转置范围,而无需实际复制和粘贴吗?我真的只想了解这是否可行,或者我是否应该继续复制,pastespecial transpose = true,然后将该结果转换为数据透视表。然而,这个选项似乎有点长,所以我想知道是否有更有效的方向进入。
n = ActiveWorkbook.Sheets.Count
ActiveSheet.Cells(12, 1).Select
Selection.Resize(38, n + 3).Copy
ActiveWorkbook.Sheets.Add Before:=Worksheets(1)
ActiveSheet.Name = "PIVOT"
Worksheets("Pivot").Range("A1").PasteSpecial transpose:=True
我的新方法是将原始数据声明为范围,然后将该范围声明为转置范围,然后尝试将该转置范围声明为数据透视缓存。
Dim Trange As Range
Set Trange = Range(Sheets("Control Panel").Cells(12, 1), Sheets("control panel").Cells(38, n + 3))
Range(Sheets("Pivot").Cells(1, 1), Sheets("Pivot").Cells(n + 3, 38)).Value = Application.transpose(Trange)
使用最后一行代码,我已经将数据显示在Pivot工作表上,并进行了转置。
但是,最终,我试图将这些数据以转置的形式直接放入数据透视缓存中,而不必将其显示在工作表上。