简单的vba代码给出运行时错误91对象变量或未设置块

简单的vba代码给出运行时错误91对象变量或未设置块,vba,excel,excel-2007,Vba,Excel,Excel 2007,因此,当单击命令按钮时,我有一个简单的小宏/子定义。问题是它给了我: 运行时错误“91”:对象变量或未设置块 我的代码是: Dim rng As Range rng = Sheet8.Range("A12") '<< ERROR here rng.Value2 = "1" Dim rng As范围 rng=Sheet8.Range(“A12”)”您需要设置对象: Set rng = Sheet8.Range("A12") 第八张很好 S

因此,当单击命令按钮时,我有一个简单的小宏/子定义。问题是它给了我:

运行时错误“91”:对象变量或未设置块 我的代码是:

Dim rng As Range
rng = Sheet8.Range("A12") '<< ERROR here
rng.Value2 = "1"
Dim rng As范围

rng=Sheet8.Range(“A12”)”您需要设置对象:

 Set rng = Sheet8.Range("A12")
第八张很好

 Sheet1.[a1]

检查excel的版本,如果您使用的是旧版本,则Value2不适用于您,因此显示错误,而它将与2007+版本一起使用。
或者另一种方式是,未创建对象,因此Value2属性不可用于对象。

此外,您正在尝试使用set关键字设置Value2,这不是必需的。您可以直接使用rng.value2=1

以下为参考的测试代码

Sub test()
    Dim rng As Range
    Set rng = Range("A1")
    rng.Value2 = 1
End Sub

我肯定有一张
sheet 8
,当然也有一个单元格
A12
在这张表上。也许是语法问题?应该分别为“A”和“12”吗?+1 thanks不会给我错误,但也不会设置A12单元格的值?应该是
rng.Value
还是
rng.Formula
也不起作用?哈哈!现在确定
Set rng.Value2=“1”
给我一个运行时错误424@giddy我回来了:)您只使用Set将变量设置为对象。根据我的回答,你发布的代码对我来说很好,添加了Set。是否存在第8页?别忘了我可以将Sheet3重命名为Sheet8,但它仍然是Sheet3。不要将对象Sheet8与名为Sheet8的工作表混淆。顺便说一句,数字不需要引号,但这与问题无关。@Remou aha!所以它在我家的机器上工作!我看到我可以添加一个excel表单控件和一个ActiveX按钮,但这两者都可以!我想我可能在工作机器上做了些傻事!非常感谢=D