1

ボタンに関連付けられた Visual Basic ルーチンを含む Excel ファイルを更新する必要があります。ルーチンが空のデータで実行されるのを防ぎ、早期復帰を行いたいと考えました。

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 ステートメントを見たことがあります。

4

2 に答える 2

1

これはあなたが意味するものですか?

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
于 2013-03-13T11:18:49.427 に答える
1

Exit Sub サブルーチンで使用する必要があります

于 2013-03-13T11:15:19.493 に答える