【发布时间】:2020-02-11 16:25:09
【问题描述】:
我正在尝试使用 VBA 中的函数来创建我已定义的类的新实例。
数据如下:
Address 1 | Address 2
123 Sample Ln NW | 1
123 Sample Ln NW | 2
该类已在名为“Apt”的类模块中定义,如下所示:
Option Explicit
Public Add1 As String
Public Add2 As String
我想使用一个函数来返回这个类的一个实例(因为我必须从几个不同的子例程中执行它)。
Sub TestIssue2()
Dim i As Integer
i = 2
currApt = makeApt(i)
MsgBox (currApt.Add1 & ", " & currApt.Add2)
End Sub
Function makeApt(i As Integer) As Object
Dim x As New Apt
x.Add1 = Worksheets("Sheet1").Range("A" & i).Value
x.Add2 = Worksheets("Sheet1").Range("B" & i).Value
makeApt = x
End Function
我明白了:
“运行时错误'91':对象变量或未设置块变量”。
我的尝试:
- 我发现如果我在子例程中定义实例,它确实有效,所以这确实有效:
Sub TestIssue1()
Dim i As Integer
i = 2
Dim currApt As New Apt
currApt.Add1 = Worksheets("Sheet1").Range("A" & i).Value
currApt.Add2 = Worksheets("Sheet1").Range("B" & i).Value
MsgBox (currApt.Add1 & ", " & currApt.Add2)
End Sub
- 搜索“使用函数 VBA 来创建新的类实例”的多种变体后,我找到了 this tutorial 或 this tutorial 这样的网站,但两者都在谈论将函数存储在类中,而不是使用函数来创建。李>
- 我可以在此站点上找到的最接近的问题是this question,其中一些答案似乎表明我想要的东西是可能的。然而,这个问题提出了一个不同的问题,似乎并没有提供这个问题的答案。
【问题讨论】: