无法调用自定义类对象的方法Excel VBA

时间:2017-03-29 10:26:59

标签: excel vba class methods

我正在编写一些用于安排自动化的代码。我对VBA编程比较陌生,但多年来一直用其他语言编程。对于我的项目,我创建了一个名为OpsFloor的类,它应该模拟操作层。我正在将用户信息解析为一个数组并尝试传递该数组(我已尝试将整个数组和各个值传递)到OpsFloor对象的实例中。我担心我对VBA中的类如何工作有一些根本的误解。下面是Class

中的sub
Public Sub SetProcessMatrixValue(x As Integer, y As Integer, value As Integer)
    ProcessMatrix(x, y) = value
End Sub

以下是Excel中工作表对象子中的调用:

Option Explicit
Private OperationMatrix(18, 8) As Integer
Private dailyWF As New OpsFloor
Public Sub StartingWorksheet()
...
dailyWF.SetProcessMatrixValue 0, 0, 30
End Sub

当我尝试运行sub以通过SetProcessMatrixValue方法将这些值分配给类实例时,我得到运行时错误'''对象不支持此属性或方法。

1 个答案:

答案 0 :(得分:1)

所以我有几个问题,在拼凑了很多不同的帖子后我设法发现了。

首先是我最初宣布我的类变量的方式:

Private dailyWF As New OpsFloor

这没有正确实例化类对象。当我尝试将其更改为以下内容时:

Private dailyWF As New OpsFloor
Set dailyWf = New Operations_Floor

我收到一个错误,指向我的类构造函数。它最终成为我如何将对象分配给集合的问题。

newCollection.Add(new Object) //WRONG!
newCollection.Add new Object //Right!

对于像我这样的其他新手,我发现了一篇帖子,建议通过工具>选项>一般>类课程中断来启用“打破课程模块”。这向我展示了错误是在类构造函数内部,而实际上并不是我打电话的方式的问题。