KC 發問時間: 電腦與網際網路軟體 · 9 年前

問EXCEL "篩選-->全部顯示" 有點慢...

Excel 2003版,資料內容有點多,大約10,000列x15欄,所以自動篩選-->再某些欄做過篩選之後,再使用"篩選-->全部顯示"的話,要好幾秒的時間,覺得有點慢,VBA如下表示

ActiveSheet.ShowAllData

或是

Application.ScreenUpdating = False

For I = 1 To 15

Selection.AutoFilter Field:=I

Next

但是比如說可以知道只有第2與第3欄不是顯示全部資料的話,只要再這兩欄選全部顯示,速度就快多了(VBA如下)

Selection.AutoFilter Field:=2

Selection.AutoFilter Field:=3

問題是VBA要怎麼知道15欄裡有哪些目前不是顯示全部資料?

另一個問題是CTRL-HOME的VBA要怎麼寫?用錄製巨集得到的是

Range("A2").Select

但是我想要的是按CTRL-HOME的效果(不一定是A2欄,例如篩選過就不是A2欄)

已更新項目:

太感謝了,第1個問題照您回覆的內容解決了。

第2個問題用Sendkeys解決了,如下:

Application.SendKeys ("^{HOME}")

麻煩您把回覆內容複製到「回答」,好給點數,再次謝謝。

1 個解答

評分
  • 夏日
    Lv 5
    9 年前
    最佳解答

    是否指這樣子,參考。

    Set f = ActiveSheet.AutoFilter.Filters

    For i = 1 To f.Count

    MsgBox f(i).On

    Next

    第二個看不太懂。

    2010-12-11 11:31:50 補充:

    Sub Macro1()

    Set f = ActiveSheet.AutoFilter.Filters

    For i = 1 To f.Count

    MsgBox f(i).On

    Next

    End Sub

    參考。

還有問題?馬上發問,尋求解答。