0

セルが存在する場合、範囲の名前を解除しようとしています。以下のコードは正しい名前の範囲を見つけますが、説明なしでnm.Delete行で爆発します。どうすれば修正/デバッグできますか?

ありがとう!

Function unefineRange(strRgeName As String)
    Dim nm As Name
    For Each nm In ThisWorkbook.Names
        If nm.Name = strRgeName Then
            nm.Delete
        End If
    Next nm
End Function
4

2 に答える 2

0

これを Excel 2003 で実行したところ、問題なく実行されました。

Fred と Wilma という 2 つの名前付き範囲を作成し、これ (モジュール 1) を Visual Basic エディターで実行しました。「ウィルマ」を問題なく削除。

Function undefineRange(strRgeName As String)
    Dim nm As Name
    For Each nm In ThisWorkbook.Names
        If nm.Name = strRgeName Then
            nm.Delete
        End If
    Next nm
End Function

Sub unDefineRangePlease()
   undefineRange ("Wilma")
End Sub
于 2012-10-15T17:04:41.130 に答える
0

これを試して

Sub DeleteName(strRgeName As String)
    On Error Resume Next  ' so if name does not exist no error is raised
    ThisWorkbook.Names(strRgeName).Delete
End Sub

に変更しました。戻り値を設定していSubないため、 である理由がわかりませんFunction

于 2012-10-15T18:47:27.667 に答える