Я создал модуль класса и назвал его Time. Я хотел иметь в нем функцию, которая создала экземпляр объекта Time и вернула его. См. Код ниже. Если вы можете придумать лучший способ написать функцию, я все уши. Проблема у меня, как он стоит, когда я делаю следующее заявление:объект требуется ошибка при вызове функции
tsheet.MondayStart = Time.Construct(Item.Value)
Debug.Print заявление до этого вызова показывает, что Item.Value является «8:30». tsheet имеет тип TimeSheet и свойство MondayStart ожидает, что ему будет присвоен объект типа Time. Однако, когда этот оператор выполняется во время выполнения, я получаю требуемую ошибку. Я даже попытался удалить парантез, но все, что делает, вызывает еще одну ошибку «Ошибка компиляции: ожидаемый конец отчета»
Как это исправить? Пожалуйста, порекомендуйте. Жаль, что 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