Excel VBA - 用于转置范围的宏,然后将其转换为数据透视表

时间:2017-06-21 13:18:08

标签: vba transpose

我试图获取一系列数据,转置它然后将其转换为数据透视表。

我已经编写了代码来抓取数据,复制/粘贴/转置它。然后我假设我将该选择转换为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工作表上,并进行了转置。

但是,最终,我试图将这些数据以转置的形式直接放入数据透视缓存中,而不必将其显示在工作表上。

0 个答案:

没有答案