我想指向一个单元格作为 VBA 中的一个范围。我试过使用:
Dim range
range = Sheet("sheet").Range("A1")
但这只是返回范围内的值。我真正想要的是范围对象,所以我可以操纵它,例如通过设置 range.Value = "Hello"
有任何想法吗?
首先,我强烈建议您在代码中明确声明变量是强制性的。转到Tools - Options,在Editor选项卡中选中"Require variable Declaration",或放入Option Explicit
所有脚本的第一行。
其次,我认为您的代码中有一个小错字,应该是Sheets.("sheet")
.
要回答您的问题,range = Sheets("sheet").Range("A1")
您要分配一个值变量,而不是一个对象。因此范围对象的默认变量是隐式分配的,即value
. 要分配对象,请使用Set
关键字。我的完整示例代码如下所示:
Option Explicit
Public Sub Test()
Dim RangeObject As range
Set RangeObject = Sheets("Sheet1").range("A1")
RangeObject.Value = "MyTestString"
End Sub
这应该将文本“MyTestString”放在单元格 A1 中。
编辑:如果您使用命名范围,请尝试RangeObject.Value2
代替RangeObject.Value
. 命名范围没有Value
属性。