Class 在excel vba中将对象用作类属性的正确语法是什么?
我正在尝试将工作表对象用作vba类模块中的属性。她的“我在一个名为Class 在excel vba中将对象用作类属性的正确语法是什么?,class,excel,vba,Class,Excel,Vba,我正在尝试将工作表对象用作vba类模块中的属性。她的“我在一个名为clsAgent的a类模块中拥有的: 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 pAgentS
clsAgent
的a类模块中拥有的:
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
请尝试在
clsAgent
模块文件中添加以下行:
Dim pAgentSheet作为工作表
因为您创建的属性应该引用clsAgent
模块的现有pAgentSheet
字段
请尝试修改后的测试文件:
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
类模块中不存在的变量/属性
我希望它至少有一点帮助