0

我想指向一个单元格作为 VBA 中的一个范围。我试过使用:

         Dim range
         range = Sheet("sheet").Range("A1")

但这只是返回范围内的值。我真正想要的是范围对象,所以我可以操纵它,例如通过设置 range.Value = "Hello"

有任何想法吗?

4

1 回答 1

4

首先,我强烈建议您在代码中明确声明变量是强制性的。转到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属性。

于 2009-07-16T09:24:02.833 回答