Я делаю лист Excel с определенным условием, которое возвращает строку. Эта функция работала как подпроцедура , но когда я пытался использовать ее как функцию, я продолжал получать '#VALUE!'. Может кто-нибудь, пожалуйста, помогите мне, почему этот код не возвращает строку?
Пожалуйста, посмотрите код ниже:
Function check_input2() As String
Dim range1 As range
Dim range2 As range
Dim row_num As Integer
'Dim col_num As Integer
Dim val As Boolean
Dim a As Integer
Dim b As Integer
Dim row_end As Integer
'count = 0
'row_num = range1(1, 1).Row
'col_num = range1(1, 1).Column
a = 1
b = 1
val = True
row_end = 11 + 12
row_num = 11
Set range1 = range("A" & row_num & ":" & "A" & row_end)
For row_num = 11 To row_end
Set range2 = range("I" & row_num & ":O" & row_num)
If WorksheetFunction.Sum(range2.Value) = 0 Then
'nothing has to happen
val = val And True
range("Q" & row_num).Value = True
ElseIf WorksheetFunction.Sum(range2.Value) > 0 Then
If IsEmpty(range1(a, b).Value) = True Then
val = val And False
range("Q" & row_num).Value = False '**************************
ElseIf IsEmpty(range1(a, b).Value) = False Then
val = val And True
range("Q" & row_num).Value = True '**************************
End If
End If
a = a + 1
Next
If val = True Then
'do nothing
'check_input2 ("hello")--error
check_input2 = "hello"
'check_input2 = True
ElseIf val = False Then
'check_input2 ("Please do not skip the project number!")--error
check_input2 = "Please do not skip the project number!"
'check_input2 = False
End If
End Function