Мой код для создания сводки работает, но поле Первая строка не работает - PullRequest
0 голосов
/ 08 июня 2018

Я пытался создать сводную таблицу в VBA, и мне частично это удалось, даже после создания сводной кэш-памяти и сводной таблицы первый rowFeild не появляется, но появляется второй rowFeild, хотя я нумеровал их как .position= 1 и .position = 2.Пожалуйста, кто-нибудь может мне помочь, так как я новичок в кодировании VBA и мне нужна помощь, чтобы это исправить ..

Где я дал xlRowField «Естественный счет», у меня есть этот столбец в моих данных, а также столбец »Описание естественного счета », но все же код полностью пропускает« Естественный счет »в поле строки и переходит ко второму, не зная почему.Кроме того, как поместить его в классический Pivot, мой код не работает для этого.

Dim PSheet As Worksheet
    Dim DSheet As Worksheet
    Dim PCache As PivotCache
    Dim PTable As PivotTable
    Dim PRange As Range
    Dim LastRow As Long
    Dim LastCol As Long

    'On Error Resume Next
    Worksheets("TempData").Activate
    Application.DisplayAlerts = False
    Worksheets("PivotTable").Delete
    Sheets.Add before:=ActiveSheet
    ActiveSheet.Name = "PivotTable"
    Application.DisplayAlerts = True
    Set PSheet = Worksheets("PivotTable")
    Set DSheet = Worksheets("TempData")

    'LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Select
    'LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
    Set PRange = DSheet.Range("A1").CurrentRegion

    Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange). _
    CreatePivotTable(tabledestination:=PSheet.Cells(2, 2), TableName:="SalesPivotTable")

    Set PTable = PCache.CreatePivotTable(tabledestination:=PSheet.Cells(2, 2), TableName:="SalesPivotTable")

    With ActiveSheet.PivotTables("SalesPivotTable").PivotFields("Natural Account")
        .Orientation = xlRowField
        .Position = 1
        '.InGridDropZones = True
        '.RowAxisLayout xlTabularRow
    End With

    With ActiveSheet.PivotTables("SalesPivotTable").PivotFields("Natural Account Description")
        .Orientation = xlRowField
        .Position = 2
    End With

    With ActiveSheet.PivotTables("SalesPivotTable").PivotFields("ME")
        .Orientation = xlColumnField
        .Position = 1
    End With

    With ActiveSheet.PivotTables("SalesPivotTable").PivotFields("Net Closing Balance")
        .Orientation = xlDataField
        .Position = 2
        .Function = xlSum
    End With

    ActiveSheet.PivotTables("SalesPivotTable").RowAxisLayout xlTabularRow

    'With ActiveSheet.PivotTables("SalesPivotTable")
        '.InGridDropZones = True
        '.RowAxisLayout xlTabularRow
    'End With
...