有人可以提示我可能在这里做错了吗?目前,我正在有效地尝试使用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