Я пытался создать сводную таблицу в 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