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

时间:2017-10-25 14:12:31

标签: excel excel-vba excel-2010 vba

我想创建一个宏,我可以根据名称删除多个单元格的内容。例如,我有一张工作表,其中我有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 

这是为了删除所有内容,但我只需要我之前提到过的一些内容。

2 个答案:

答案 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