我试图取消一个范围,如果它存在的单元格。下面的代码找到了具有正确名称的范围,但在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
答案 0 :(得分:0)
我刚刚在Excel 2003中运行它并运行良好:
我创建了两个命名范围,Fred和Wilma,并在Visual Basic编辑器中运行它(模块1)。删除了“Wilma”,没有任何问题。
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
答案 1 :(得分: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
,因为您没有设置返回值