我是VBA的新手,我正在尝试创建一个宏,我将从中创建一个按钮,从我粘贴到某个工作表的数据中创建数据透视表。
下面的代码来自一个宏,我试图逐步生成我希望代码运行的方式。
我正在选择某些数据(列A:G),然后将该数据粘贴到另一个工作表中,然后创建一个空白表。
我的代码:
Sub Macro2()
'
' Macro2 Macro
'
'
Cells.Select
Range("A672198").Activate
Application.CutCopyMode = False
Selection.Copy
Application.CutCopyMode = False
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Sheet2!R1C1:R1048576C7", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="Sheet11!R3C1", TableName:="PivotTable6", DefaultVersion _
:=xlPivotTableVersion15
Sheets("Sheet11").Select
Cells(3, 1).Select
End Sub
问题来自:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Sheet2!R1C1:R1048576C7", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="Sheet11!R3C1", TableName:="PivotTable6", DefaultVersion _
:=xlPivotTableVersion15
,错误消息为:
运行时错误' 5':无效的过程调用或参数
我已经尝试过如何制作一个基本的宏来创建我的数据的空白数据透视表,但我似乎无法弄明白。
我也看了很多来自这个网站的帖子,没什么真正帮助的。我尝试引用this帖但没有运气。
我正在使用Microsoft Excel 2013 *
答案 0 :(得分:0)
给这一点 - 这将从A:G
获取列Sheet1
并创建一个新工作表(命名为),将所有数据粘贴到该工作表上的A:G
列中,然后创建第三张工作表,并根据工作表2中的数据创建一个新的数据透视表。
Option Explicit
Sub Test()
Dim sht1 As Worksheet, sht2 As Worksheet, sht3 As Worksheet
Dim lastrow As Long
Set sht1 = ThisWorkbook.Worksheets("Sheet1")
lastrow = sht1.Cells(sht1.Rows.Count, "A").End(xlUp).Row
Set sht2 = Sheets.Add(After:=Sheets(Sheets.Count))
Set sht3 = Sheets.Add(After:=Sheets(Sheets.Count))
sht2.Range("A1:G" & lastrow).Value = _
sht1.Range("A1:G" & lastrow).Value
ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
sht2.Name & "!R1C1:R" & lastrow & "C7", Version:=6).CreatePivotTable TableDestination:= _
sht3.Name & "!R3C1", DefaultVersion:=6
End Sub
答案 1 :(得分:0)
试试这个:
Sub create_pivot()
Dim mysourcedata, mydestination As String
Dim lr As Long
lr = Sheets("Sheet1").Range("A1").End(xlDown).Row '' find your last row with data
mysourcedata = "Sheet1!R1C1:R" & lr & "C5"
mydestination = "Sheet2!R1C1"
Sheets("Sheet2").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, sourcedata:= _
mysourcedata, Version:=6).CreatePivotTable TableDestination:= _
mydestination, TableName:="PivotTable1", DefaultVersion:=6
End Sub