Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:在新图纸上创建数据透视表_Excel_Vba - Fatal编程技术网

Excel VBA:在新图纸上创建数据透视表

Excel VBA:在新图纸上创建数据透视表,excel,vba,Excel,Vba,我试图在与数据源不同的工作表上创建数据透视表。我遇到的问题是,当我得到运行时错误“1004”时,在数据透视缓存的单独页面上创建数据透视表,而我可以将数据透视表粘贴到同一个工作表上,这没有问题。我当前拥有的代码如下所示: Sub PivotTable() ThisWorkbook.Worksheets("FG REPORT").Activate Dim ws As Worksheet Dim pc As PivotCache Dim pt As PivotTable Dim pf As

我试图在与数据源不同的工作表上创建数据透视表。我遇到的问题是,当我得到运行时错误“1004”时,在数据透视缓存的单独页面上创建数据透视表,而我可以将数据透视表粘贴到同一个工作表上,这没有问题。我当前拥有的代码如下所示:

    Sub PivotTable()

ThisWorkbook.Worksheets("FG REPORT").Activate

Dim ws As Worksheet
Dim pc As PivotCache
Dim pt As PivotTable
Dim pf As PivotField
Dim pf2 As PivotField
Dim pf3 As PivotField


Set pc = ThisWorkbook.PivotCaches.Create( _
                                        SourceType:=xlDatabase, _
                                        SourceData:=Sheet4.Name & "!" & Sheet4.Range("A1").CurrentRegion.Address, _
                                        Version:=xlPivotTableVersion15)


Set ws = ThisWorkbook.Sheets("Pivot")
ws.Activate
Cells.Select
Cells.Clear
Range("A1").Select


Set pt = pc.CreatePivotTable( _
    TableDestination:=ActiveCell, _
    TableName:="AgedPivot")


'Set Pivot Field variables

Set pf = pt.PivotFields("Description")
Set pf2 = pt.PivotFields("Age Range")
Set pf3 = pt.PivotFields("OH Qtys")

pf.Orientation = xlRowField
pf2.Orientation = xlPageField
pf3.Orientation = xlDataField


End Sub

尝试在图纸名称前后串联一个引号,因为该名称包含空格:

SourceData:="'" & Sheet4.Name & "'!" & Sheet4.Range("A1").CurrentRegion.Address

这成功了!谢谢你的帮助,我今天花了大约两个小时在这个问题上,完全被难倒了。