Excel数据透视表自动排序

时间:2019-02-07 14:26:33

标签: excel vba sorting pivot-table

我有以下3个表,它们从较大的表中提取值,并且一旦主数据发生更改,我还需要这些表以及图表以升序自动排序。 Screenshot 我得到表1使用以下VBA代码在更新时自动排序,但是由于某种原因,它在表2和3上不起作用。(请注意,我仅更改了代码中的列索引),而对其他表没有帮助表enter image description here

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("X:X")) Is Nothing Then
        Range("X4").Sort _
              Key1:=Range("X4"), _
              Order1:=xlAscending, Header:=xlYes, _
              OrderCustom:=1, MatchCase:=False, _
              Orientation:=xlTopToBottom
    End If

    If Not Intersect(Target, Range("AK:AK")) Is Nothing Then
        Range("AK4").Sort _ 
              Key1:=Range("AK4"), _
              Order1:=xlAscending, Header:=xlYes, _
              OrderCustom:=1, MatchCase:=False, _
              Orientation:=xlTopToBottom
    End If

    If Not Intersect(Target, Range("AY:AY")) Is Nothing Then
        Range("AY4").Sort _
              Key1:=Range("AY4"), _
              Order1:=xlAscending, Header:=xlYes, _
              OrderCustom:=1, MatchCase:=False, _
              Orientation:=xlTopToBottom
    End If

End Sub

欢迎任何建议更正

1 个答案:

答案 0 :(得分:0)

首先删除On Error Resume Next,它只会通过忽略/跳过它们来帮助您发现问题。这是一个不良习惯,需要打破。

您不能仅通过将其命名为2和3来创建新的事件过程。将所有必需的代码放在单个Change事件中。也就是说,每张纸只有一个Change事件。