Excel 从Visual Basic中的函数返回

Excel 从Visual Basic中的函数返回,excel,vba,Excel,Vba,我必须更新一个Excel文件,其中包含一个附在按钮上的Visual Basic例程。 我试图阻止例程使用空数据运行,并希望尽早返回: Sub FillProductDetail() Dim wks As Worksheet set wks = Worksheets("Product Detail") Dim ProductToShow As String ProductToShow = wks.Range("C4") wks.Rows("5:1000")

我必须更新一个Excel文件,其中包含一个附在按钮上的Visual Basic例程。 我试图阻止例程使用空数据运行,并希望尽早返回:

Sub FillProductDetail()
    Dim wks As Worksheet
    set wks = Worksheets("Product Detail")

    Dim ProductToShow As String
    ProductToShow = wks.Range("C4")
    wks.Rows("5:1000")Delete Shift :=xlUp

    If ProductToShow = "" Then
        Return
    End If

    ..... many lines which take forever if ProductToShow is empty

End Sub

我知道如何将函数的其余部分包含在If语句中,这是可行的,但随后所有内容都进一步缩进到右侧。我以前在Basic中看过Return语句。

您应该使用
Exit Sub
在子程序中,这就是你的意思吗

Option Explicit

Sub FillProductDetail()
    Dim wks As Worksheet
    Set wks = ThisWorkbook.ActiveSheet

    Dim ProductToShow As String
    ProductToShow = wks.Range("C4")
    wks.Rows("5:1000").Delete Shift:=xlUp

    If ProductToShow = "" Then GoSub MyRoutine
    Exit Sub

MyRoutine:
    MsgBox "Empty cell"
    Return
End Sub

实际上我用的是“如果。。。然后Exit Sub Endif说,如果没有额外的消息,你可以考虑使用路由,因为你已经说过,如果单元格是空的,就有大量的代码行要执行。我一直不清楚,如果函数的其余部分将以空的值运行,则需要花费很长时间,所以应该始终设置值。我会投票支持你的答案,但我还不被允许。没关系。我很高兴你澄清了需要什么,并得到了你的答案!