O VBA pode excluir intervalos nomeados com base no valor RefersTo?

1

Estou limpando uma pasta de trabalho inchada do Excel e tentando excluir intervalos nomeados que estão se referindo a pastas de trabalho na unidade C de alguém. Existem muitos deles. E eles não estão sendo usados neste manual.

'C:\blahblah\...\...\...\...\...\[WorkBookName.xls]Sheet1'!$E$28

O código abaixo me ajudou a excluir intervalos nomeados onde o nome deles contém 'ícone' (por exemplo).

No entanto, eu realmente preciso excluir o intervalo quando ele contém um caminho, conforme mostrado acima. Tendo em mente que o nome da pasta de trabalho ou da planilha também pode ser alterado, , mas a unidade permanece a mesma.

Sub deleteNamedRangesSpecific()
For Each NR In ActiveWorkbook.Names
    If NR.NameLocal Like "*" & "icon" & "*" Then NR.delete
Next
End Sub

Alguma idéia de como excluir de acordo com o intervalo em si, não com o nome do intervalo?

Obrigado.

Mike.

    
por RocketGoal 21.07.2017 / 14:57

1 resposta

1

Você só precisa passar a variável NR.RefersTo para uma variável de tipo string para poder usar a função Like .

Esse código funciona para mim. Obviamente, edite $E$28 para se adequar.

Option Explicit
Sub deleteNamedRangesSpecific()
    Dim NR As Name
    Dim compare_string As String
    For Each NR In ActiveWorkbook.Names
        compare_string = NR.RefersTo
        If compare_string Like "*" & "$E$28" & "*" Then NR.Delete
    Next
End Sub
    
por 24.07.2017 / 08:42