警告:我是VBA的新手。
我有以下类,名为TestClass
:
Option Explicit
Private pName As String
Private Sub Class_Initialize()
Name = "test_1"
End Sub
Public Property Get Name() As String
Name = pName
End Property
Public Property Let Name(Value As String)
pName = Value
End Property
我有一个子程序,我连接到一个按钮点击事件,如下所示:
Sub DisplayTestValue()
Dim testClass As testClass
With testClass
MsgBox "default value: " & testClass.Name
End With
testClass.Name = "Tom"
MsgBox "set to (Tom) value: " & testClass.Name
End Sub
然后我点击按钮。它调用子程序。我收到以下错误消息:
Run-time error '91':
Object variable or With block variable not set
调试器在以下代码行停止:
MsgBox "default value: " & testClass.Name
调试器告诉我没有设置testClass.Name!我对此感到非常困惑,因为我将“test_1”的默认值设置为类Initializer中的Name属性。
有人可以向我解释一下我做得不对吗?
答案 0 :(得分:0)
我找到了答案
在实例化New
的对象时,我没有使用关键字TestClass
。
为:
Dim testClass As testClass
好:
Dim testClass As New testClass