如何处理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
相关产品推荐
相关产品推荐

