VBA透视表中的行数据字段不显示在同一列中

VBA透视表中的行数据字段不显示在同一列中,vba,excel,pivot-table,Vba,Excel,Pivot Table,下午好 我的VBA宏创建了一个透视表,我希望有人能帮助我,但我已经搜索了,但什么也找不到 我选择了3个数据行,但当我运行宏时,它会将它们全部放在单独的列中,而不是放在同一列下 因此,为了更好地解释它,选择的3行标题是“产品条形码”、“产品编号”和“产品说明”,而不是将它们都放在a列中,放在彼此下面,而是将每个标题放在一个单独的列中,因此“产品条形码”在a列中,“产品编号”在B列中,“产品说明”在C列 在此方面的任何帮助都将不胜感激 提前谢谢 Sub TestingCategoryPivot3()

下午好

我的VBA宏创建了一个透视表,我希望有人能帮助我,但我已经搜索了,但什么也找不到

我选择了3个数据行,但当我运行宏时,它会将它们全部放在单独的列中,而不是放在同一列下

因此,为了更好地解释它,选择的3行标题是“产品条形码”、“产品编号”和“产品说明”,而不是将它们都放在a列中,放在彼此下面,而是将每个标题放在一个单独的列中,因此“产品条形码”在a列中,“产品编号”在B列中,“产品说明”在C列

在此方面的任何帮助都将不胜感激

提前谢谢

Sub TestingCategoryPivot3()

'Declare Variables
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

'Insert a New Blank Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Sheets.Add Before:=Worksheets("Data")
ActiveSheet.Name = "PivotTable"
Application.DisplayAlerts = True
On Error GoTo 0
Set PSheet = Worksheets("PivotTable")
Set DSheet = Worksheets("Data")

'Define Data Range - i don't use this as i get a type mismatch error when i do
'LastRow = DSheet.Cells(DSheet.Rows.Count, 1).End(xlUp).Row
'LastCol = DSheet.Cells(1, DSheet.Columns.Count).End(xlToLeft).Column

'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Add _
(SourceType:=xlDatabase, SourceData:="Data!R1C1:R20000C23")

'Insert Blank Pivot Table
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(28, 1), TableName:="PivotTable7")

'Insert Row Fields
With PTable.PivotFields("Product Barcode")
.Orientation = xlRowField
.Position = 1
End With

With PTable.PivotFields("Product Number")
.Orientation = xlRowField
.Position = 2
End With

With PTable.PivotFields("Product Description")
.Orientation = xlRowField
.Position = 3
End With

'Insert Column Fields
With PTable.PivotFields("Category")
.Orientation = xlColumnField
.Position = 1
End With

'Insert Data Field
With PTable.PivotFields("Category")
.Orientation = xlDataField
.Position = 1
.Function = xlCount
.NumberFormat = "#,##0"
End With

With PTable.PivotFields("Category")
.PivotItems("#VALUE!").Visible = False
.PivotItems("(blank)").Visible = False
End With

'Insert Pivot Filter
With PTable.PivotFields("Zone")
    .Orientation = xlPageField
    .Position = 1
End With

With PTable.PivotFields("Product type")
    .Orientation = xlPageField
    .Position = 2
End With

With PTable.PivotFields("Period")
    .Orientation = xlPageField
    .Position = 3
End With

'Format Pivot Table
PTable.ShowTableStyleRowStripes = True
PTable.TableStyle2 = "PivotStyleMedium9"

End Sub

听起来您正在描述报告布局功能。如果您从“数据透视表工具”>“设计”选项卡中选择“报表布局”,并选择“以压缩形式显示”,您会得到您想要的吗?

是的,就是这样。太谢谢你了,我用这个拔头发了!