標題:
[已解決]自動篩選問題
[打印本頁]
作者:
like_azure
時間:
2011-6-8 17:00
標題:
[已解決]自動篩選問題
本帖最後由 like_azure 於 2011-6-13 11:53 編輯
'本程序自動篩選顧客名稱為BOTTM, 人員代號為3的資料錄
Sub vbaAFilter()
Dim Rng As Range '自動篩選結果範圍
Dim theRow As Range '各區域的資料列
Dim theArea As Range '各區域範圍
With Sheets("Orders") '在Orders工作表中
Set Rng = .UsedRange '所有資料範圍
Rng.AutoFilter Field:=2, Criteria1:="BOTTM" '篩選出顧客為BOTTOM者
Rng.AutoFilter Field:=3, Criteria1:="3" '再篩選出員工代號為3者
'設定篩選結果範圍
Set Rng = Rng.Resize(Rng.Rows.Count - 1).Offset(1, 0).SpecialCells(xlCellTypeVisible)
End With
'遍歷篩選結果範圍各AREA
For Each theArea In Rng.Areas
'遍歷各AREA的各列
For Each theRow In theArea.Rows
theRow.Select '選定此列
MsgBox theRow.Address '顯示此列的位址
Next
Next
Rng.AutoFilter '解除自動篩選狀態
End Sub
複製代碼
請問各位大大,上面程式碼是參考crdotlin大大的範例(http://blog.xuite.net/crdotlin/excel/11049893),
小弟在運用的時候,卻遇到
如果沒有符合篩選條件的時候
,
就會在Set Rng = Rng.Resize(Rng.Rows.Count - 1).Offset(1, 0).SpecialCells(xlCellTypeVisible)這行當掉,
錯誤訊息:執行階段錯誤'1004' 找不到所要找的儲存格
請問各位大大要怎麼解決這個問題呢?
作者:
luhpro
時間:
2011-6-8 22:12
本帖最後由 luhpro 於 2011-6-8 22:19 編輯
回復
1#
like_azure
Sub vbaAFilter()
.
.
.
On Error GoTo Skip
With Sheets("Orders") '在Orders工作表中
.
.
.
End With
For Each theArea In Rng.Areas
.
.
.
Next
Skip:
Rng.AutoFilter '解除自動篩選狀態
On Error GoTo 0
End Sub
作者:
Hsieh
時間:
2011-6-8 23:42
Set Rng = Rng.Offset(1, 0).SpecialCells(xlCellTypeVisible)
作者:
like_azure
時間:
2011-6-9 11:16
感謝luhpro Hsieh兩位大大的解答,
趕快來去試看看
作者:
like_azure
時間:
2011-6-10 14:29
感謝兩位大大,已經解決了,謝謝!!
作者:
like_azure
時間:
2011-6-17 17:06
請問Hsieh大大,小弟有一個疑問請教,
為什麼把Resize拿掉就不會當掉了呢??
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)