【发布时间】:2019-06-06 03:46:25
【问题描述】:
我的 VBA 代码出了问题。我用属性创建了一个名为“clsColl”的类模块。当我将变量声明为“clsColl”时一切正常,但是当我将数组声明为“clsColl”时出现错误 “对象变量或未设置块变量”,如果我在另一个子程序中使用这个数组,我在第一个子程序中调用了它。
我做了一个简短的例子,里面的代码很麻烦。
首先是我的班级模块“clsColl”
Option Explicit
Public name As String
Public weight as single
现在可以运行的代码
Sub workingA()
Dim persona As New clsColl
Call workingB(persona)
End Sub
Sub workingB(persona As cls Coll)
persona.name = "phil"
persona.weight = 100
End Sub
现在代码不起作用
Sub failingA()
Dim persona() As New clsColl
ReDim persona(1 to 5)
Call failingB(persona)
End Sub
Sub failingB(persona() As cls Coll)
persona(1).name = "phil"
persona(1).weight = 100
End Sub
我得到一个错误,只是将我的代码从使用变量更改为使用数组。
现在我在第二个代码中收到错误对象变量或未设置块变量”,但我不知道为什么。我想知道为什么使用数组作为对象会造成这样的麻烦,而使用普通变量工作正常。
【问题讨论】:
标签: arrays excel vba class module