这应该很简单,但我找不到明确的答案.
如果我正在读/写一个范围,我什么时候才能使用范围名称,什么时候需要使用range.value?范围是一个细胞还是多个细胞是否重要?变量的类型是什么关系?或者范围内的数据类型?这是最好的做法吗?
例如,我应该写
__PRE__
或者我应该写
__PRE__
同样的,
__PRE__
要么
__PRE__
Sid*_*out 10
在Excel Range对象中,默认member为Value
所以SomeVariable = Range("A1")和.一样SomeVariable = Range("A1").Value
同样Range("A1") = SomeVariable如此Range("A1").Value = SomeVariable
当你说时,你当然要小心 a = Range("Test")
当您尝试将值从连续范围存储到Variant变量时,例如,Test范围指的是A1:A10,然后您将获得一个值数组
Sub Sample()
Dim Myar
Myar = Range("A1:A10").Value
Debug.Print UBound(Myar)
End Sub
Run Code Online (Sandbox Code Playgroud)
在这种情况下再次Myar = Range("A1:A10").Value相同Myar = Range("A1:A10")
如果我正在读/写一个范围,我何时只使用范围名称,何时需要使用range.value?
我不确定你的意思是什么,when do I just use the range name但是.Value当你从一个范围读/写时,你是否使用并不重要.恕我直言,这是一个很好的做法使用.Value:)
范围是一个细胞还是多个细胞是否重要?
如果您使用.Value与否,即使在这种情况下也不重要.
变量的类型是什么关系?
哦,是的!请参阅上面的数组示例
或者范围内的数据类型?
Excel单元格可以存储各种类型的数据.从数字到日期到字符串.由于您不知道该类型是什么,因此建议您在使用它们时使用Variant.这是一个经典的例子
假设单元格A1有这个数字123456789
现在试试这段代码
Sub Sample()
Dim someVariable As Integer
someVariable = Range("A1").Value
Debug.Print someVariable
End Sub
Run Code Online (Sandbox Code Playgroud)
现在尝试这个
Sub Sample()
Dim someVariable As Variant
someVariable = Range("A1").Value
Debug.Print someVariable
End Sub
Run Code Online (Sandbox Code Playgroud)
编辑:
正如提姆威廉姆斯所说
使用.Value对于"消除歧义"常见的"在分配对象变量时忘记使用Set"问题也很有用 - Dim a:设置a =范围("A1")vs Dim a:a =范围("A1" )在第二种情况下总是使用.Value澄清实际问题 -
| 归档时间: |
|
| 查看次数: |
28152 次 |
| 最近记录: |