none
Dúvida sobre intervalos nomeados VBA RRS feed

  • Pergunta

  • Pessoal, olá.

    Estou terminando a correção de uma planilha com macros de validação complexas pra caramba e várias outras funções.

    Uma das abas tem uma função para criar réplicas dela mesma, porém quando isso é feito até mesmo os intervalos nomeados são dobrados. Exemplo: a aba original (JOB) tem um intervalo nomeado que referencia a célula A1 com o nome CodIndex, para aba clone o mesmo nome é criado referenciando a celula A1 da aba clone (JOB1). como ambos tem o mesmo nome isso gera erro nas validações e por isso preciso de uma maneira para remover essas referencias replicadas antes de criar as referencias exclusivas da JOB1. Eu tentei usar o código abaixo, mas ele remove pelo nome e acaba não por excluir essas referencias com nomes iguais.

    For Each IndexName In ThisWorkbook.Names
                If (InStr(1, IndexName.NameLocal, sheetName)) Then
                    IndexName.Delete
                End If
            Next IndexName 

    É possível criar uma rotina que procura o intervalo nomeado pelo range que ele referencia e não apenas pelo nome dele?

    segunda-feira, 25 de maio de 2015 17:43

Respostas

  • Sub Main()
        Dim oName As Name
        Dim rng As Range
        
        Set oName = Names(1)
        Set rng = oName.RefersToRange
        
    
        MsgBox oName.Name & " se refere a " & rng.Address(0, 0, , 1) & ", planilha " & rng.Worksheet.Name
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 26 de maio de 2015 02:47
    Moderador