Можете ли вы изменить исходный код сводной таблицы в VBA? - PullRequest
0 голосов
/ 14 февраля 2019

Записал макрос для отчета, который я запускаю еженедельно и который содержит сводную таблицу.Проблема в том, что диапазон не будет одинаковым каждую неделю.Я попытался установить параметры только для столбцов, но затем я получил пустой столбец в сводной таблице из-за всех пустых ячеек под данными.Есть ли способ изменить SourceData: = _ "Отчет о предварительных заказах UBS! R1C1: R1048576C19" (

 Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "UBS Pre-Orders Report!R1C1:R1048576C19", Version:=6).CreatePivotTable _
        TableDestination:="Sheet4!R3C1", TableName:="PivotTable2", DefaultVersion _
        :=6
    Sheets("Sheet4").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("PivotTable2")
        .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("PivotTable2").PivotCache
        .RefreshOnFileOpen = False
        .MissingItemsLimit = xlMissingItemsDefault
    End With
    ActiveSheet.PivotTables("PivotTable2").RepeatAllLabels xlRepeatLabels
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Item Number")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Quantity On Order"), "Sum of Quantity On Order", _
        xlSum
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Ship Date")
        .Orientation = xlColumnField
        .Position = 1
    End With
End Sub

1 Ответ

0 голосов
/ 15 февраля 2019

Я использовал эту статью здесь, и она дала мне то, что мне нужно было, который по сути был установлен диапазон в виде таблицы, а затем использовать таблицу в качестве исходного кода https://chandoo.org/wp/tables-pivottables-and-macros-music-to-your-ears/

...