有人可以提示我可能在這裏做錯了嗎?目前,我正在有效地嘗試使用Ctrl-A命令對vba中的數據塊執行全選操作。然後我希望將該選擇保存爲一個範圍,以便稍後使用它。設置選擇範圍
Dim rngAdData As Range
.....
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Set rngAdData = Selection
Range(rngAdData).AdvancedFilter Action:=xlFilterInPla.... //<----
最後一行給了我一個run-time error '1004': Method 'Range' of object 'Global' failed
當我做下面的方式,它的工作原理
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).AdvancedFilter Action:=xlFilterInPla....
但是做這種方式很麻煩,因爲我需要再次使用範圍這裏
With ActiveWorkbook.Worksheets("....").Sort
.SetRange Range(Selection) //<---
被指出的那一行給了我同樣的錯誤。
你爲我敞開了大門,非常感謝。自從我上一個vba項目以來已經有一段時間了。只是一個小問題,是'.Select'語句不好? – mango 2013-02-28 16:55:28
@mango他們很慢,不可靠。你明智地在代碼中明確表達你想要的內容,而不是依賴於光標位置的變化。您的代碼不會受到某人在執行過程中單擊鼠標並將所有內容搞亂的影響。它也會導致屏幕變化太慢。 – Brad 2013-02-28 17:52:45