Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 返回select语句结果_Vba_Excel - Fatal编程技术网

Vba 返回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

我有一个函数,它有一个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
然而,就目前而言,我得到了一个错误:
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新手,这让我抓狂。谢谢你的帮助!