我创建了一个Class Module并将其命名为Time。我想在其中创建一个Time对象的实例并将其返回。见下面的代码。如果你能想出一个更好的方法来编写这个函数,那么我就是耳朵。我有,因为它代表的问题是,当我作出以下声明:函数调用时需要的对象错误
tsheet.MondayStart = Time.Construct(Item.Value)
这一呼吁之前,Debug.Print语句显示Item.Value是“08:30”。 tsheet是TimeSheet类型的,MondayStart属性期望被分配一个Time类型的对象。但是,当这个语句在运行时执行时,我得到了对象所需的错误。我甚至尝试删除pativehesis,但所有这些都会引发另一个错误“编译错误:预期的声明结束”
如何解决此问题?请指教。太糟糕了VBA不支持construtors的概念:-(
艾伦
'IN TIME CLASS MODULE
Public Function Construct(Value As String) As Time
'This function expects a string formatted like: 08:30
'Time.Delimiter returns ":"
Dim tempTime As Time
Dim vhours As Integer
Dim vminutes As Integer
Dim arrTime() As Time
arrTime = Split(Value, Time.Delimiter)
hours = CInt(Trim(arrTime(0)))
minutes = CInt(Trim(arrTime(1)))
Set tempTime = New Time
tempTime.hours = vhours
tempTime.minutes = vminutes
Construct = tempTime
End Function
我认为一个SET在tsheet.MondayStart = Time.Construct(Item.Value)丢失? – Larry
我试着添加SET,但在运行时我仍然得到“需要的对象”。当我逐行浏览时:Set tsheet.MondayStart = Time.Construct(Item.Value),Item.Value在返回参数“08:30”后立即返回错误。我认为它对我的Construct()函数有些不利,但我不知道那会是什么?请指教。 – Alan
时间是VBA中的一个关键字,您能否尝试将时间更改为其他变量名称? – Larry