3

ワークシートを追加して名前を変更する関数がありますが、最初にその名前のワークシートが既に存在するかどうかを確認します。そのために、ここでかなり広く利用可能な関数を使用しています-

Function WorksheetExists(ByVal WorksheetName As String) As Boolean

    On Error Resume Next ' Set to Resume Next as don't want to end macro if this fails
    WorksheetExists = (Sheets(WorksheetName).Name <> "")
    On Error GoTo 0

End Function

私の問題は、On Error GoTo error_exitこの関数を呼び出す親サブに既に設定しているためOn Error GoTo 0、シートが存在するかどうかを確認した後、その呼び出しを無効にすることです。

この関数で試してみOn Error GoTo error_exitましたが、次のエラーが発生します-

準拠エラー: ラベルが定義されていません

これを回避する方法を知っている人はいますか?

4

2 に答える 2

5

関数を終了するとWorksheetExists、エラー スコープは自動的に以前の状況に戻ります。On Error Goto error_exit呼び出し元のサブ/関数で再開するために何もする必要はありません。

この関数からエラー処理を削除し、渡された名前のワークシートが存在しない場合、コードは呼び出しエラー処理ラベル (つまり、呼び出しコードの error_exit: ラベル) で実行を再開することに注意してください。 )

于 2013-02-15T11:58:37.010 に答える