根据名称清除Excel单元格的内容

我想创build一个macros,可以根据名称删除多个单元格的内容。 例如,我有一个工作表,其中有sheet1name1和sheet2name2,另一个工作表上有我使用的名称sheet2name1和sheet2name2。 如果单元格命名为“sheet name ”,是否可以编写一个macros来删除这些单元格的内容? 星星应该指向数字。

Sub RemNamedRanges() Dim nm As Name On Error Resume Next For Each nm In ActiveWorkbook.Names nm.Delete Next On Error Goto 0 End Sub 

这是删除所有,但我只需要一些特定的,如我前面提到的。

InStr应该能够确定是否有一个string中的子string。

 For Each nm In ActiveWorkbook.Names if cbool(instr(1, nm.name, "name", vbtextcompare)) then _ nm.Delete Next 

这应该指向正确的方向。 更改If语句以匹配您所需要的内容(不确定您是在查找Sheet1还是在工作簿中的表名。)是否循环遍历工作簿?

 Sub RemNamedRanges() Dim nm As Name On Error Resume Next For Each nm In ActiveWorkbook.Names If nm.Name = ActiveSheet.Name Then Range(nm).ClearContents End If Next On Error GoTo 0 End Sub