我有一个具有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语句的结果并将其分配给范围?
答案 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