Vba 获取用户选择的范围

Vba 获取用户选择的范围,vba,excel,excel-2003,Vba,Excel,Excel 2003,如何通过用户鼠标输入获取选定的单元格范围,以便使用VBA进行进一步处理?您可以循环选择对象以查看所选内容。下面是来自Microsoft的代码片段(http://msdn.microsoft.com/en-us/library/aa203726(办公地址:11.aspx): 选择是VBA中自己的对象。它的功能非常类似于范围对象 但是,Selection和Range并不共享所有相同的属性和方法,因此为了便于使用,只需创建一个范围并将其设置为与Selection相等,然后就可以像处理任何其他范围一样以

如何通过用户鼠标输入获取选定的单元格范围,以便使用VBA进行进一步处理?

您可以循环选择对象以查看所选内容。下面是来自Microsoft的代码片段(http://msdn.microsoft.com/en-us/library/aa203726(办公地址:11.aspx):


选择
是VBA中自己的对象。它的功能非常类似于
范围
对象

但是,Selection和Range并不共享所有相同的属性和方法,因此为了便于使用,只需创建一个范围并将其设置为与Selection相等,然后就可以像处理任何其他范围一样以编程方式处理它

Dim myRange as Range
Set myRange = Selection

要进一步阅读,请查看。

这取决于“获取选择范围”的含义。如果您的意思是获取范围地址(如“A1:B1”),则使用选择对象的address属性-正如Michael所述,选择对象非常类似于范围对象,因此大多数属性和方法都适用于它

子测试()
将我的字符串变暗为字符串
myString=Selection.Address
端接头

录制宏,执行您的操作,停止宏,然后查看生成的代码。尝试了该操作,但生成了预定义的范围。我希望a获得一个每次都会变化的范围。这是因为您禁用了“使用相对引用”(它位于代码组的“开发人员”选项卡中)。正如下面的答案所指,将记录的是选择对象(范围实例)。谢谢。这就是我所需要的。数数就够了吗?我认为Count属性在Selection对象上可用。在整个选择中循环似乎是一种开销。他只是发布了一个如何使用选择对象的示例。我在我的代码中使用count属性仍然取决于您试图对选择做什么。如果说在枚举过程中从某个区域删除单元格,我不确定这是否完全可靠。虽然这超出了问题的范围。我如何只计算可见的行?当选择是类型范围时,它缺少什么道具和方法?我总是直接将其转换为范围类型,但只是感兴趣。我更喜欢.Address(0,0),因为它返回的地址不带$符号。在vba中工作时,这是最好的。
Dim myRange as Range
Set myRange = Selection