作者jumbotest (coup de foudre)
看板Office
標題[算表] VBA以其他活頁簿儲存格為篩選條件
時間Fri Dec 15 21:13:36 2017
軟體:EXCEL
版本:20XX
我想篩選A檔案的13列C欄,
條件為B檔案工作表4的儲存格B5或B6,
試寫如下:
Sub 巨集()
Rows("13:13").Select
Selection.AutoFilter
ActiveSheet.Range("$A$13:$L$116").AutoFilter Field:=3, Criteria1:= _
Workbooks("B.xlsm").Sheets("工作表4").Range("b5"),
Operator:=xlOr, Criteria2:=Workbooks("B.xlsm").Sheets("工作表4").Range
("b6")
End Sub
不過出現錯誤訊息QQ
請問語法該怎麼寫才正確呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.177.212
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1513343618.A.E1D.html
1F:→ soyoso: 什麼錯誤訊息。陣列索引超出範圍的話,表示b.xlsm未開啟 12/15 22:03
您好,錯誤訊息經您提示已經排除了,但是篩選不出結果QQ
我的B.xlsm的工作表4的b6如圖1
https://imgur.com/a/FVlre
(本例中篩選條件為b6"106/12/19"以及不重要的b5)
巨集執行前的檔案畫面如圖2
https://imgur.com/a/ePHXO
(13列C欄包含"106/12/19"儲存格)
巨集執行結果如圖3
https://imgur.com/a/KoCbt
(106/12/19並未被篩選出)
※ 編輯: jumbotest (1.163.177.212), 12/15/2017 23:16:52
=============================================================
更新:我好像找到關鍵了!
篩選條件的格式是eee/mm/dd
巨集以為是mm/dd/yyyy ...............
https://imgur.com/a/YAkee
請問要怎麼修正呢?
※ 編輯: jumbotest (1.163.177.212), 12/15/2017 23:21:53
2F:→ soyoso: 以format來修改,看應用於原po實際檔案內,是否可篩選出 12/15 23:25
感謝提點,GOOGLE FORMAT之後弄出來惹
https://imgur.com/a/WVmWh
不過有兩個小問題
1.為了讓畫面簡潔,我用dim r as寫在前面卻出現缺少with變數錯誤訊息?
2.format eee/dd/mm會錯,改成ee/dd/mm或e/dd/mm就可以了,原因不明 @@
※ 編輯: jumbotest (1.163.177.212), 12/15/2017 23:44:27
4F:→ soyoso: 如as range要以set來指定範圍到變數 12/15 23:51