Vba 返回select语句结果
我有一个函数,它有一个select语句。我想让这个函数返回一个将被分配给单元格的值,但我不断得到错误。下面是调用select语句函数的代码:Vba 返回select语句结果,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 LookupSi
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
然而,就目前而言,我得到了一个错误:returnwithwithoutgosub
如何返回case语句的结果并将其分配给某个范围?将返回值分配给函数本身。单引号用于创建注释,双引号用于带引号的字符串
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
VBA中的函数不使用
返回
,而是使用函数名作为变量。如果要在赋值后结束函数,还必须使用退出函数
。您的代码如下所示:
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
为每个case语句添加
退出函数
没有实际意义。VBA选择第一场比赛中的“短路”情况;没有其他处理。谢谢您的帮助!它是有效的,但我必须检查第一个答案,因为他们首先响应,但我会投票。@Jeeped我只是说明如何在VBA中模仿常见的Return
语句,因为Return
结束函数本身,但在VBA中为函数赋值不会。啊哈!我是VBA新手,这让我抓狂。谢谢你的帮助!