0
我有一個Excel VBA項目,用戶可以在Sheet 1中選擇的文檔發送電子郵件。在Sheet 1中有兩欄:Column1和Column 2. Column2列出所有文檔爲超鏈接,如果用戶想要要選擇一個文檔,他/她在文檔的Column1中放置一個「x」。然後用戶點擊發送按鈕發送電子郵件。下面是按鈕點擊事件的代碼:當引發錯誤如何清除在vba代碼中設置的過濾器?
…
Set Ash = ActiveSheet
On Error GoTo cleanup
Ash.Range("A5:B500").AutoFilter Field:=1, Criteria1:="x"
For Each cell In Ash.Range("B5:B300").SpecialCells(xlCellTypeVisible)
If cell.Offset(0, -1).Value = "x" Then
…
End If
Next
…
cleanup:
Set OutApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
…
我的問題就來了。用戶單擊發送按鈕後,如果發生錯誤,Sheet1只會選擇這些文檔,並且所有其他文檔已被過濾掉。並且在每列的頂部顯示一個過濾器按鈕,這很好,因爲我確實希望用戶知道發生了什麼問題。
我的問題是我無法更改過濾器設置或退出過濾器。我必須關閉Excel,然後重新打開它。是否有任何方法可以通過單擊Column1頂部的過濾器按鈕清除過濾器,並將所有其他文檔重新放回?
此問答是否回答您的問題? http://stackoverflow.com/questions/14426837/vba-unfilter-range/14428929#14428929 – 2013-02-08 18:22:11
不是。我想顯示過濾器按鈕。但是我也想給用戶一個在sheet1中的選項來清除過濾器。 – GLP 2013-02-08 19:56:39