Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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
VBA创建数据透视表,类型不匹配?我做错了什么?_Vba_Excel_Pivot_Pivot Table - Fatal编程技术网

VBA创建数据透视表,类型不匹配?我做错了什么?

VBA创建数据透视表,类型不匹配?我做错了什么?,vba,excel,pivot,pivot-table,Vba,Excel,Pivot,Pivot Table,获取行上的类型不匹配tabledestination:=(“pivot!A3”) 我想添加一张工作表,将其命名为“Pivot”,并在该工作表上创建数据透视表 Dim pt As PivotTable Dim Pcache As PivotCache Sheets.add.name = "Pivot" Sheets("DATA").Select Set Pcache = ActiveWorkbook.PivotCaches.Create(xlDatabase, Cells(1, 1).Curren

获取行上的类型不匹配
tabledestination:=(“pivot!A3”)

我想添加一张工作表,将其命名为“Pivot”,并在该工作表上创建数据透视表

Dim pt As PivotTable
Dim Pcache As PivotCache
Sheets.add.name = "Pivot"
Sheets("DATA").Select
Set Pcache = ActiveWorkbook.PivotCaches.Create(xlDatabase, Cells(1, 1).CurrentRegion)
Set pt = ActiveSheet.PivotTables.Add(PivotCache, tabledestination:=("pivot!A3"))
    With pt
        PivotFields.Subtotals(1) = False
        .InGridDropZones = True
        .RowAxisLayout xlTabularRow
        .PivotFields("Apple").Orientation = xlRowField
        .PivotFields("Apple Qty").Orientation = xlDataField
        End With
这对我有用

Sub Sample()
    Dim pt As PivotTable
    Sheets.Add.Name = "Pivot"

    With ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
        SourceData:=Sheets("DATA").Cells(1, 1).CurrentRegion)

        Set pt = .CreatePivotTable(TableDestination:="Pivot!R3C1")
    End With

    '~~> Rest of Code
End Sub
或者如果你想按自己的方式去做

Sub Sample()
    Dim pt As PivotTable
    Dim Pcache As PivotCache

    Sheets.Add.Name = "Pivot"

    Set Pcache = ActiveWorkbook.PivotCaches.Create(xlDatabase, _
    Sheets("DATA").Cells(1, 1).CurrentRegion)

    Set pt = Pcache.CreatePivotTable(tabledestination:=("Pivot!R3C1"))

    '~~> Rest of the code
End Sub
警告:如果存在板材枢轴,则会出现错误。也许你想把这个添加到你的代码中

Application.DisplayAlerts = False
On Error Resume Next
Sheets("Pivot").Delete
On Error GoTo 0
Application.DisplayAlerts = True
Sheets.Add.Name = "Pivot"
这对我有用

Sub Sample()
    Dim pt As PivotTable
    Sheets.Add.Name = "Pivot"

    With ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
        SourceData:=Sheets("DATA").Cells(1, 1).CurrentRegion)

        Set pt = .CreatePivotTable(TableDestination:="Pivot!R3C1")
    End With

    '~~> Rest of Code
End Sub
或者如果你想按自己的方式去做

Sub Sample()
    Dim pt As PivotTable
    Dim Pcache As PivotCache

    Sheets.Add.Name = "Pivot"

    Set Pcache = ActiveWorkbook.PivotCaches.Create(xlDatabase, _
    Sheets("DATA").Cells(1, 1).CurrentRegion)

    Set pt = Pcache.CreatePivotTable(tabledestination:=("Pivot!R3C1"))

    '~~> Rest of the code
End Sub
警告:如果存在板材枢轴,则会出现错误。也许你想把这个添加到你的代码中

Application.DisplayAlerts = False
On Error Resume Next
Sheets("Pivot").Delete
On Error GoTo 0
Application.DisplayAlerts = True
Sheets.Add.Name = "Pivot"
而不是使用

Set pt = ActiveSheet.PivotTables.Add(PivotCache, tabledestination:=("pivot!A3"))
我利用这一点向前迈进:

Sheets("Pivot").Activate
Set pt = ActiveSheet.PivotTables.Add(PivotCache:=Pcache, TableDestination:=Range("A3"))
注意添加了
工作表(“Pivot”)。激活
PivotCache:=Pcache
。不过,我还没有检查该语句下面代码的有效性。

而不是使用

Set pt = ActiveSheet.PivotTables.Add(PivotCache, tabledestination:=("pivot!A3"))
我利用这一点向前迈进:

Sheets("Pivot").Activate
Set pt = ActiveSheet.PivotTables.Add(PivotCache:=Pcache, TableDestination:=Range("A3"))
注意添加了
工作表(“Pivot”)。激活
PivotCache:=Pcache
。不过,我还没有检查该语句下面代码的有效性