簡體   English   中英

Excel宏導致異常行為

[英]Excel macro causes strange behaviour

嗨,Excel宏中有相當新的內容,我正在使用自動過濾器對其進行排序。 當我嘗試使用錯誤的工作表中顯示的數據時,它可以正常工作並滿足我的要求。 反正這是我的宏

Sub Hide_Unassigned()
Worksheets("Resource View (2)").Activate
Dim LastRow As Long, c As Range
Application.EnableEvents = False
LastRow = Cells(Cells.Rows.Count, "D").End(xlUp).Row

ActiveWorkbook.Worksheets("Master Data").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Master Data").AutoFilter.Sort. _
    SortFields.Add Key:=Range("Z1:Z200"), SortOn:=xlSortOnValues, Order:= _
    xlDescending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Master Data").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
On Error Resume Next
For Each c In Range("D1:D" & LastRow)
If c.Value = "Unassigned" Then
    c.EntireRow.Hidden = True
Else
    c.EntireRow.Hidden = False
End If

Next
    ActiveWorkbook.Worksheets("Master Data").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Master Data").AutoFilter.Sort. _
    SortFields.Add Key:=Range("D1:D200"), SortOn:=xlSortOnValues, Order:= _
    xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Master Data").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
On Error GoTo 0
Application.EnableEvents = True
End Sub

正如我所說,一切正常,除了當我嘗試對主數據中的數據進行重新排序時,它顯示在資源視圖(2)工作表中。 然后只需將其拖動即可將其刪除,但我認為這還不夠。

預先感謝您的任何建議或幫助

遇到了麻煩,當我訪問主數據表本身時,通過簡單地移動要調用的宏的最后部分,就設法對自己進行了排序。

不要使用Active(anything) 這就是您要做的事情。

加:

Dim MstrDataWS as Worksheet
Dim ResWS as Worksheet
Set ResWS = Worksheets("Resource View (2)")
Set MstrDataWS = ActiveWorkbook.Worksheets("Master Data")

然后,每次您要引用一個或另一個工作表時,請根據需要使用MstrDataWSResWS 這將確保您引用正確的工作表。 它還允許您消除對.Activate.Select所有引用。

另外, Cells()Range()引用的是活動工作表,因此您可能會迷路。 調整這些命令以適當使用ResWS.Cells()MstrDataWS.Cells()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM