Я много долго превосходят формулу, как этотVBA Функция в Excel Возвращение VALUE
IF(ISNUMBER(E6),IF(E6<standard_hour,0,IF(((E6-standard_hour)*24*60)>90,2,CEILING(((E6-standard_hour)*24*60)/30*0.5,0.5))),VLOOKUP(E6,Refer,2,FALSE))
Поскольку я использую эту формулу много в таблице, я решил сделать собственную функцию для этого. Это функция
Function morning_check(start_hour)
Dim sheet As Worksheet
Set sheet = ActiveWorkbook.Sheets("Setup")
If WorksheetFunction.IsNumber(start_hour) Then
If start_hour < sheet.Range("E1").Value Then
morning_check = 0
Else
If ((start_hour - sheet.Range("E1").Value) * 24 * 60 > 90) Then
morning_check = 2
Else
morning_check = Application.WorksheetFunction.Ceiling(((start_hour - sheet.Range("E1")) * 24 * 60)/30 * 0.5, 0.5)
End If
End If
Else
morning_check = Application.WorksheetFunction.VLookup(start_hour, sheet.Range("Refer"), 2, False)
End If
End Function
вход этой функции может быть строка (пример: «TS») или времени (например, 7:00)
Использование строки в качестве ввода, эта функция работать корректно, но когда я использую время, просто бросаю #Value!
Какая строка является источником ошибки? Excel следует выделить его, если вы выберете Debug. –
Его выделение первая строка – l1th1um