返回一个select语句结果

时间:2018-03-22 19:08:52

标签: vba excel-vba excel

我有一个具有select语句的函数。我希望此函数返回一个将分配给单元格的值,但我不断收到错误。这是我调用select语句函数的代码:

Sub ChangeSizes()

    For i = 2 To 50
        Range("G" & i) = LookupSize(Range("G" & i).value)
    Next i

End Sub

这是我的函数,我想返回一个将分配给范围的值:

Public Function LookupSize(Size) As String

    Select Case Size
        Case Is = 1
            Return '5/8" or 1/4"'
        Case Is = 43
            Return '3/8"'
    End Select

End Function

但是,就目前情况而言,我收到了一个错误:Return without Gosub

如何返回case语句的结果并将其分配给范围?

2 个答案:

答案 0 :(得分:4)

您将返回值分配给函数本身。单引号创建注释,双引号用于引用的字符串。

Public Function LookupSize(Size) As String

    Select Case Size
        Case 1
            LookupSize = "5/8" or "1/4"
        Case 43
            LookupSize = "3/8"
    End Select

End Function

答案 1 :(得分:2)

VBA中的函数不能使用Return,而是使用函数名作为变量。如果要在为其赋值后结束该功能,则还必须使用Exit Function。你的代码看起来像这样:

Public Function LookupSize(Size) As String

Select Case Size
    Case 1
        LookupSize = '5/8" or 1/4"' or whatever you want
    Case 43
        LookupSize = '3/8"' or whatever you want
End Select

End Function