与VBA相比,手动创建数据透视表有一个不寻常的活动

与VBA相比,手动创建数据透视表有一个不寻常的活动,vba,excel,pivot,Vba,Excel,Pivot,好的,我录制了一个宏来创建一个透视表。这个问题很简单,也很烦人。我选择使用vba在一个名为data的工作表上选择包含数据的所有列和行,并在另一个名为pivot的工作表上创建pivot表。但是,当我运行宏时,它不会在字段列表中显示最后几天的最后一列,而当我手动选择相同的内容并插入透视表时,它会显示所有字段。 我不知道这么简单的一步我会做错什么 Sheets("Pivot").Select Range("A:R").Delete Sheets("Data").Select Range(Sele

好的,我录制了一个宏来创建一个透视表。这个问题很简单,也很烦人。我选择使用vba在一个名为data的工作表上选择包含数据的所有列和行,并在另一个名为pivot的工作表上创建pivot表。但是,当我运行宏时,它不会在字段列表中显示最后几天的最后一列,而当我手动选择相同的内容并插入透视表时,它会显示所有字段。 我不知道这么简单的一步我会做错什么

Sheets("Pivot").Select

Range("A:R").Delete

Sheets("Data").Select

Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "Data!R1C1:R1000C16", Version:=xlPivotTableVersion15).CreatePivotTable _
    TableDestination:="Pivot!R2C1", TableName:="PivotTable1", DefaultVersion _
    :=xlPivotTableVersion15

Sheets("Pivot").Select
Cells(1, 1).Select

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Vendor Name")

    .Orientation = xlRowField
    .Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Planner")
    .Orientation = xlRowField
    .Position = 2
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Part Number")
    .Orientation = xlRowField
    .Position = 3
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Reason Code")
    .Orientation = xlRowField
    .Position = 4
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Comments")
    .Orientation = xlRowField
    .Position = 5
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Quantity Outstanding")
    .Orientation = xlRowField
    .Position = 6
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Need By Date")
    .Orientation = xlRowField
    .Position = 7
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Days Late")
    .Orientation = xlRowField
    .Position = 8
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Release Number")
    .Orientation = xlRowField
    .Position = 9
End With

这是我以前遇到的一个问题,是由事件的顺序引起的。当宏录制器执行它的操作时,它是非常文字化的,这就是为什么它“回放”时不工作的原因


我将使用语句对事件重新排序,看看这是否有助于添加数据工作表的屏幕截图。如果信息敏感,则清空实际值,只留下列标题。2您所说的字段列表中未显示最后一列延迟天数是什么意思?可能也会显示一个屏幕截图。所以我尝试了这个,但在我尝试之前,我认为顺序与此无关,因为应该作为pivot源的数据没有显示延迟天数作为字段之一,所以顺序无论如何都不重要。我想对了吗?我不太擅长阅读R1C1样式的引用,但我认为这个问题的根源在于它停在第16列,所以你需要根据数据调整它!R1C1:R1000C17或者,您可以将其写为'SourceData:=RangeA1:Q1000-但是如果工作表动态更改,您可以计算行数等。您完全正确,这正是发生的情况。我已经修改过了,效果很好。我不敢相信这是一个我忽略了的小错误,但我猜它发生了