【发布时间】:2015-02-08 19:32:41
【问题描述】:
我对 VBA 很陌生,
今天开发一个宏,我注意到一些有趣的事情。
像这样使用Range 是有效的:
Dim rg As Range
Set rg = ActiveSheet.Range("A1:B2")
像这样使用Range 不起作用并导致错误“未设置对象变量”:
Dim rg As Range
rg = ActiveSheet.Range("A1:B2")
但是像这样使用Range 是有效的:
Dim rg,rg2 As Range
rg = ActiveSheet.Range("A1:B2")
这怎么可能?
【问题讨论】:
-
我相信你会发现它并没有“真正”工作它只是在编译时不会触发编译器错误。例如,在末尾添加
Debug.Print rg.Address,只有在使用Set时才有效