【发布时间】:2015-06-12 13:10:32
【问题描述】:
我有以下名为clsAgent 的vba 类模块:
Option Explicit
Private pAgentSheetName As String
Private pAgentSheet As Worksheet
Public Property Get AgentSheetName() As String
AgentSheetName = pAgentSheetName
End Property
Public Property Let AgentSheetName(AgentSheetName As String)
pAgentSheetName = AgentSheetName
End Property
Public Property Get AgentSheet() As Worksheet
AgentSheet = pAgentSheet
End Property
Public Property Let AgentSheet(AgentSheet As Worksheet)
pAgentSheet = AgentSheet
End Property
这是我在不同模块中的类实例化:
Sub test_agent_class()
Dim agent1 As clsAgent
Set agent1 = New clsAgent
Set agent1.AgentSheet = Worksheets(agent1.AgentSheetName)
Debug.Print agent1.AgentSheet.Name
End Sub
但是,当我运行 test_agent_class() 时,我收到一个错误:run-time error 9
subscript out of range。以下行以黄色突出显示:Set agent1.AgentSheet = Worksheets(agent1.AgentSheetName)。
我阅读了this answer,但我不明白问题出在哪里,因为agent1.AgentSheetName 是一个字符串。
我做错了什么?
编辑
根据第一个答案,我添加了一行:
agent1.AgentSheetName = "agentsFullOutput.csv"
在类实例化之后。现在我得到一个错误:
Run-time error '91': Object variable or With block variable not set.
【问题讨论】: