Строковая функция VBA: не возвращает значение - PullRequest
0 голосов
/ 24 октября 2019

Я делаю лист 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
...