【问题标题】:simple vba code gives me run time error 91 object variable or with block not set简单的 vba 代码给了我运行时错误 91 对象变量或未设置块
【发布时间】:2011-07-13 23:56:19
【问题描述】:

所以我在单击命令按钮时定义了一个简单的小宏/子。问题是它给了我:

运行时错误“91”:对象变量或未设置块

我的代码是:

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

我只想在 Sheet8 中设置单元格“A12”。

谢谢!

【问题讨论】:

  • 我确定有一个Sheet8 并且肯定有一个单元格A12 工作表。也许它的语法?应该分别是“A”和“12”吗?

标签: vba excel excel-2007


【解决方案1】:

你需要用对象设置:

 Set rng = Sheet8.Range("A12")

Sheet8 很好。

 Sheet1.[a1]

【讨论】:

  • +1 感谢没有给出错误但也没有设置 A12 单元格值?应该是rng.Value 还是rng.Formula 也不行?
  • 哈哈!好的现在Set rng.Value2 = "1" 给我一个运行时错误 424
  • @giddy 我回来了 :) 您只使用 Set 将变量设置为对象。根据我的回答,添加 Set 后,您发布的代码对我来说效果很好。 Sheet8存在吗?不要忘记我可以将 Sheet3 重命名为 Sheet8,但它仍然是 Sheet3。不要将对象 Sheet8 与名为 Sheet8 的工作表混淆。
  • 顺便说一句,数字不需要引号,但这与问题无关。
  • @Remou 啊哈!所以它适用于我的家用机器!而且我看到我可以添加一个 excel 表单控件和一个 ActiveX 按钮,但它适用于两者!我想我可能在工作机器上做了一些愚蠢的事情!非常感谢! =D
【解决方案2】:

检查 excel 的版本,如果您使用的是旧版本,那么 Value2 对您不可用,因此它会显示错误,而它适用于 2007+ 版本。 或者相反,对象没有被创建,因此 Value2 属性对对象不可用。

【讨论】:

    【解决方案3】:

    您还尝试使用 Set 关键字设置 value2,这不是必需的。可以直接使用 rng.value2 = 1

    下面的参考测试代码。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多