离开之前,页面上的Excel VBA运行宏

时间:2019-01-24 07:47:35

标签: excel vba

在离开函数中的页面之前,我必须先整理一张表(以使过滤后的下拉列表具有正确的值,但这与情况无关)。

我离开页面时运行了该函数,效果很好

Private Sub Worksheet_Deactivate()    
    Sort_CategoryProject_Group
End Sub

但是问题在于,执行该函数时,排序会更改为离开页面,然后再次执行“ WorkSheet_Deactivate”子程序,并进入无限循环。

这是过程

Sub Sort_CategoryProject_Group()
'9A14
'Sort after Project Name
    Dim lastRow As Byte

    lastRow = Sheets(pubWsCategory).Cells(Rows.Count, 12).End(xlUp).Row

    Sheets(pubWsCategory).Range("L4:U" & lastRow).Select
    ActiveWorkbook.Worksheets(pubWsCategory).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(pubWsCategory).Sort.SortFields.Add Key:=Range("L4:L" & lastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets(pubWsCategory).Sort.SortFields.Add Key:=Range("M4:M" & lastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

    With ActiveWorkbook.Worksheets(pubWsCategory).Sort
        .SetRange Range("L4:U" & lastRow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    Application.CutCopyMode = False
    Range("B4").Select

End Sub
  • pubWsCategory是离开页面变量的名称。

我的想法用光了,我不知道该怎么办。 谁能帮我?

0 个答案:

没有答案