运行 OLAP 查询后的宏

Run Macro after OLAP Query

这是我的练习册:

工作表布局:

  1. Source:使用 Analysis Services 连接
  2. 进行数据透视 Table
  3. Distributors: 与 Pivot
  4. 关联的要排序的内容
  5. Output:图表基于 Distributors 的排序数据 + 连接到 Pivot
  6. 的切片器

我需要做的是:在每次 OLAP 查询后启动 Sorting 宏(= 每次我使用切片器时)。

排序代码

Sub Sorting()

'This line finds the last occupied row in column A
'And you can use that LR variable in all the following Range Statements.
LR = Cells(Rows.Count, "C").End(xlUp).Row


    ActiveWorkbook.Worksheets("Distributors").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Distributors").Sort.SortFields.Add Key:=Range("C4:C102" & LR) _
        , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Distributors").Sort
        .SetRange Range("A3:C102" & LR)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
        ActiveWorkbook.Worksheets("Distributors").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Distributors").Sort.SortFields.Add Key:=Range("D4:D102") _
        , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Distributors").Sort
        .SetRange Range("D3:F102")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

已解决。 每次数据透视更新后启动宏

  1. Alt+F11,右键单击源(Sheet 与数据透视表)
  2. 查看代码
  3. 插入事件触发器

事件触发器

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
'your_macro_here
End Sub

请记住,您不能输入对模块的引用。直接插入您的宏。