You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何处理VBA中的对象声明问题(错误91)

VBA错误91问题求助

我在VBA开发中遇到了错误91,在相关问题中未找到合适的解决方案。我想要创建一个对象来存储变量和数组,尝试了类似JavaScript的写法:

Dim block As Object
...
Set block = Nothing
block.Name = "Unbekannter Prüfblock"
block.Awf = "Unbekannter Anwendungsfall"
block.Conditions = Array()
block.Checks = Array()

由于要在循环中多次使用该对象,我添加了Set block = Nothing语句,但执行后始终报错“错误91 - 对象变量或With块变量未设置”。

请问:

  • 该如何正确设置对象?
  • 在VBA中是否必须声明所有内容?
  • 有没有关闭声明提示的选项?

更新

非常感谢各位的详细解答!
按照建议我创建了“Block”类,以及“Condition”和“Check”类。以Block类为例:

Option Explicit

Public name As String
Public awf As String
Public conditions As Collection
Public checks As Collection

随后我在代码中这样使用:

Dim bl As Block
Dim co As Condition
Dim ce As Check

Set bl = New Block
bl.name = ws.Range("B" & i).value
bl.awf = ws.Range("B" & i).value

Set co = New Condition
co.attr = ws.Range("B" & i).value
co.value = ws.Range("C" & i).value
bl.conditions.Add co

内容的提问来源于stack exchange,提问作者Villanelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:31:03