Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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 用于在数据透视表中使用更改的源数据生成报表数据的通用宏_Excel_Vba_Pivot Table - Fatal编程技术网

Excel 用于在数据透视表中使用更改的源数据生成报表数据的通用宏

Excel 用于在数据透视表中使用更改的源数据生成报表数据的通用宏,excel,vba,pivot-table,Excel,Vba,Pivot Table,我一直在生成多个excel工作簿场景,需要创建单独的数据透视表来查看结果(也创建图形)。当然有一个宏我可以运行为我做到这一点 我试着录制我需要的宏(见下文),但它只在同一工作表中的源和新工作表中的源相同时才起作用 如何将代码重新编写为。。。不太具体,所以我可以在新工作簿出现时点击播放 以下是我目前的代码: Sub Output() ' ' Output Macro ' ' Keyboard Shortcut: Ctrl+r ' Cells.Select Sheets.Add

我一直在生成多个excel工作簿场景,需要创建单独的数据透视表来查看结果(也创建图形)。当然有一个宏我可以运行为我做到这一点

我试着录制我需要的宏(见下文),但它只在同一工作表中的源和新工作表中的源相同时才起作用

如何将代码重新编写为。。。不太具体,所以我可以在新工作簿出现时点击播放

以下是我目前的代码:

Sub Output()
'
' Output Macro
'
' Keyboard Shortcut: Ctrl+r
'
    Cells.Select
    Sheets.Add
    ActiveWorkbook.Worksheets("Sheet5").PivotTables("PivotTable7").PivotCache. _
        CreatePivotTable TableDestination:="Sheet5!R3C1", TableName:="PivotTable7" _
        , DefaultVersion:=6
    Sheets("Sheet5").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("PivotTable7")
        .ColumnGrand = True
        .HasAutoFormat = True
        .DisplayErrorString = False
        .DisplayNullString = True
        .EnableDrilldown = True
        .ErrorString = ""
        .MergeLabels = False
        .NullString = ""
        .PageFieldOrder = 2
        .PageFieldWrapCount = 0
        .PreserveFormatting = True
        .RowGrand = True
        .SaveData = True
        .PrintTitles = False
        .RepeatItemsOnEachPrintedPage = True
        .TotalsAnnotation = False
        .CompactRowIndent = 1
        .InGridDropZones = False
        .DisplayFieldCaptions = True
        .DisplayMemberPropertyTooltips = False
        .DisplayContextTooltips = True
        .ShowDrillIndicators = True
        .PrintDrillIndicators = False
        .AllowMultipleFilters = False
        .SortUsingCustomLists = True
        .FieldListSortAscending = False
        .ShowValuesRow = False
        .CalculatedMembersInFilters = False
        .RowAxisLayout xlCompactRow
    End With
    With ActiveSheet.PivotTables("PivotTable9").PivotCache
        .RefreshOnFileOpen = False
        .MissingItemsLimit = xlMissingItemsDefault
    End With
    ActiveSheet.PivotTables("PivotTable9").RepeatAllLabels xlRepeatLabels
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Year"), "Sum of Year", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data1"), "Sum of Data1", xlSum
    With ActiveSheet.PivotTables("PivotTable9").DataPivotField
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data2"), "Sum of Data2", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data3"), "Sum of Data3", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data4"), "Sum of Data4", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data5"), "Sum of Data5", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data6"), "Sum of Data6", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Total_Data7"), _
        "Sum of Total_Data7", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data8"), "Sum of Data8", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data9"), "Sum of Data9", _
        xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data10"), "Sum of Data10", _
        xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data11"), _
        "Sum of Data11", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data12"), "Sum of Data12", xlSum
    ActiveSheet.PivotTables("PivotTable9").AddDataField ActiveSheet.PivotTables( _
        "PivotTable9").PivotFields("Data14"), "Sum of Data14", xlSum
    With ActiveSheet.PivotTables("PivotTable9").PivotFields("Sum of Year")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveWindow.SmallScroll Down:=-3
    Range("A20").Select
End Sub


布鲁斯,谢谢你的信息。重写select out将是一个开始,但我不知道如何将pivot表部分导入…该链接中也有这么多条目BruceWayne-有任何您特别引用的条目吗?