我正在尝试将工作表对象用作vba类模块中的属性。她是我在一个名为clsAgent
的类模块中所拥有的:
Public Property Get AgentSheet() As Worksheet
Set AgentSheet = pAgentSheet
End Property
' error thrown on next two lines
Public Property Set AgentSheet(AgentSheet As Worksheet)
Set pAgentSheet = AgentSheet
End Property
当我使用下面的代码时,我在类模块中抛出了“编译错误:未定义的变量”:
Sub test_agent_class()
Dim agent1 As clsAgent
Set agent1 = New clsAgent
agent1.AgentSheetName = "agentsFullOutput.csv"
Set agent1.AgentSheet = Worksheets(agent1.AgentSheetName)
Debug.Print agent1.AgentSheet.Name
End Sub
答案 0 :(得分:0)
请尝试在clsAgent
模块文件中添加以下行:
Dim pAgentSheet As Worksheet
因为您创建的属性应该引用pAgentSheet
模块的现有clsAgent
字段。
请尝试修改测试文件:
Sub test_agent_class()
Dim agent1 As clsAgent
Set agent1 = New clsAgent
Set agent1.AgentSheet = Worksheets("agentsFullOutput.csv")
Debug.Print agent1.AgentSheet.Name
End Sub
我不是100%肯定,但看起来你引用的是AgentSheetName
类模块中不存在的变量/属性clsAgent
。
我希望它至少有点帮助。