我想创建一个宏,我可以根据名称删除多个单元格的内容。例如,我有一张工作表,其中我有sheet1name1和sheet2name2,在另一张工作表上,我使用了名称sheet2name1和sheet2name2。如果单元格命名为" sheet name "?是否可以编写一个宏来删除这些单元格的内容?星星应该指向数字。
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
这是为了删除所有内容,但我只需要我之前提到过的一些内容。
答案 0 :(得分:2)
InStr
应该能够确定字符串中是否存在子字符串。
For Each nm In ActiveWorkbook.Names
if cbool(instr(1, nm.name, "name", vbtextcompare)) then _
nm.Delete
Next
答案 1 :(得分:1)
这应该指向正确的方向。更改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