Excel VBA 中的局部变量 window 中未显示范围值
Range value not shown in locals window in Excel VBA
我想知道为什么在局部变量 window 中列出的范围对象没有值 属性。 value2 列在那里。同时我在代码中使用了 Range.Value 并且它工作正常:
Set Rng = Range("D6:D9")
Set Rng2 = Range("B2:B5")
Rng2.Value = Rng.Value
是否意味着excel默认将Range值存储在value2中?我只是好奇它是如何工作的。
我相信 .Value
属性 没有在调试 windows 中单独列出,因为自 Office 版本 2007 以来,添加了一个可选参数,并且根据通过 class 模块,在局部变量 window 中只列出没有参数的属性。显示的另一个非常有用的 属性 是:.Address
但这同样有多个可选参数,所以我相信正是出于这个原因,它才没有被列出。另一方面,.Value2
不接受任何参数,因此出现在本地 window.
可选参数在 MS 帮助中列为:.Value(RangeValueDataType)
其中 RangeValueDataType
采用枚举值之一:
xlRangeValueDefault
xlRangeValueMSPersistXML
xlRangeValueXMLSpreadsheet
但也许您错过了 .Value
确实出现在 Local/Watch window 中的顶层灰色 (如图所示)?这是因为.Value(xlRangeValueDefault)
是Range
的默认值。
我想知道为什么在局部变量 window 中列出的范围对象没有值 属性。 value2 列在那里。同时我在代码中使用了 Range.Value 并且它工作正常:
Set Rng = Range("D6:D9")
Set Rng2 = Range("B2:B5")
Rng2.Value = Rng.Value
是否意味着excel默认将Range值存储在value2中?我只是好奇它是如何工作的。
我相信 .Value
属性 没有在调试 windows 中单独列出,因为自 Office 版本 2007 以来,添加了一个可选参数,并且根据通过 class 模块,在局部变量 window 中只列出没有参数的属性。显示的另一个非常有用的 属性 是:.Address
但这同样有多个可选参数,所以我相信正是出于这个原因,它才没有被列出。另一方面,.Value2
不接受任何参数,因此出现在本地 window.
可选参数在 MS 帮助中列为:.Value(RangeValueDataType)
其中 RangeValueDataType
采用枚举值之一:
xlRangeValueDefault
xlRangeValueMSPersistXML
xlRangeValueXMLSpreadsheet
但也许您错过了 .Value
确实出现在 Local/Watch window 中的顶层灰色 (如图所示)?这是因为.Value(xlRangeValueDefault)
是Range
的默认值。