2012-09-14 20:31:52 +0000 2012-09-14 20:31:52 +0000
7
7

Porque é que o Excel me dá agora um aviso de intervalo de nomes já existente na Ficha de cópia?

Há vários dias que estou a trabalhar numa folha de cálculo Microsoft Excel 2007. Estou a trabalhar a partir de um modelo mestre como uma folha de cálculo e a copiá-lo para uma folha nova repetidamente. Até hoje, isto estava a acontecer sem problemas. No entanto, no meio do dia de hoje, isto mudou subitamente e não sei porquê. Agora, sempre que tento copiar uma folha de trabalho, recebo cerca de dez diálogos, cada um com um objecto de gama de nomes diferente (mostrado abaixo como ‘XXXX’) e clico sim para cada um:

Uma fórmula ou folha que deseja mover ou copiar contém o nome ‘XXXX’, que já existe na folha de trabalho de destino. Deseja utilizar esta versão do nome?

  • Para utilizar o nome tal como definido na folha de destino, clique em Sim.
  • Para renomear o intervalo referido na fórmula ou folha de trabalho, clique em Não, e introduza um novo nome na caixa de diálogo Nome Conflito.

Os objectos do intervalo de nomes referem-se às células da folha. Por exemplo, E6 chama-se intervalo de nomes PRE em múltiplas folhas (e tem sido sempre) e algumas das fórmulas referem-se a PRE em vez de $E$6. Uma das ‘XXXX’ acima é esta PRE. Estes intervalos de nomes só devem ser resolvidos dentro da folha em que aparecem. Isto não era um problema antes, apesar da mesma gama de nomes já existente em várias folhas. Eu quero manter os meus intervalos de nomes.

O que poderia ter mudado na minha folha de cálculo para provocar esta mudança de comportamento? Voltei às folhas de cálculo anteriores criadas desta forma e agora também dão a mensagem quando copiadas. Tentei um computador diferente e um utilizador diferente e o mesmo comportamento é visto em todo o lado. Só posso concluir que algo na folha de cálculo foi alterado. O que poderia ser isto e como posso recuperar o comportamento antigo, em que posso copiar folhas com intervalos de nomes e não receber quaisquer avisos?

Olhando na Name Manager vejo que os intervalos de nomes sobre os quais me queixei mostram duas vezes, uma como âmbito Template e outra como âmbito Workbook. Se eu apagar o âmbito Template& o aviso desaparece na cópia, no entanto, recebo um monte de #REF de erros. Se eu apagar o âmbito Workbook& os, tudo parece bem e os avisos na cópia desaparecem também, por isso talvez esta seja a resposta, mas estou nervoso acerca do efeito que esta supressão terá e pergunto-me como é que os Workbook os surgiram em primeiro lugar.

Será seguro apagar apenas as entradas de Workbook e como é que estas podem ter surgido sem eu saber para começar?

Respostas (6)

6
6
6
2012-09-14 20:51:03 +0000

Abrir o Gestor de Nomes e encontrar os itens nomeados que estão a ser reclamados e eliminar todos aqueles com âmbito Workbook e a questão com folhas de cópia desaparece e as fórmulas permanecem intactas.

5
5
5
2014-07-11 09:59:53 +0000
Sub TOOLS_DELETENAMEDRANGE()

  Dim nm As name
  On Error Resume Next

  For Each nm In ActiveWorkbook.Names
    If (MsgBox("Delete name- " & nm.name, vbYesNo) = vbYes) Then  
      nm.Delete
    End If
  Next

  On Error GoTo 0

End Sub
2
2
2
2012-09-14 20:52:04 +0000

Isto não é um erro, mas um aviso, existe um conflito e oferece uma escolha sobre o que fazer

Quando copia um intervalo que inclui uma referência a um intervalo nomeado (tipicamente uma folha de trabalho), e esse mesmo nome existe na folha de destino, como é que o Excel pode saber qual o nome que pretende usar no resultado?

Quanto ao que mudou, sugiro que reveja todos os nomes da sua pasta de trabalho, especialmente para o âmbito de aplicação.
Gestor de nomes - Ctrl-F3

1
1
1
2013-11-04 08:47:47 +0000

Estes nomes são principalmente o resultado de um download de dados através de uma API de terceiros. Os APIs utilizam tipicamente esses nomes como porta-lugares para referência de células.

Uma vez processados alguns dados, estes nomes são na sua maioria deixados para trás como um utilizador geral que não limpa as folhas ocultas (ou muito ocultas). A dificuldade associada a estes nomes é que eles também não aparecem na caixa NAMES e por isso não podem ser apagados através dessa opção.

Uma forma de o fazer é programá-lo através de um script VBA. Amostra abaixo de

Sub do_loop_names()
Dim vJunkName As Name
Debug.Print ThisWorkbook.Names.Count

For Each vJunkName In ThisWorkbook.Names
    vJunkName.Delete
Next vJunkName
End Sub

Note que este script irá apagar TODOS os nomes da pasta de trabalho, por isso, se houver certos nomes definidos que gostaria de manter, por favor coloque as excepções no código.

Se alguém tiver uma solução mais eficiente, por favor avisem-me.

0
0
0
2015-02-20 22:03:14 +0000

Tive o mesmo problema, e tentei cada solução fornecida, com sucesso variável:

1) abri o Gestor de Nomes e, com certeza, havia um monte de Nomes que nunca criei; no entanto, NÃO eram os nomes sobre os quais eu estava a ser avisado. Apaguei-os de qualquer forma para me livrar da confusão, mas não era essa a solução.

2) Tentei o código fornecido pela Viquar (iniciar “Sub do\_loops_names”). Penso que parte do código falhou, porque não consigo ver como é que realmente faz alguma coisa e, com certeza, nada aconteceu.

3) Experimentei o código fornecido pelo utilizador345338 (começa com “Sub TOOLS\_…”) - PERFECT. Ele passeou-me por todos os nomes escondidos que de alguma forma estavam presos na pasta de trabalho e apagou-os. Muito obrigado, utilizador345338 (quem quer que seja!).

BTW, para “codea” - o código do utilizador345338 não é “inútil”, pois resolveu o meu problema.

0
0
0
2013-07-01 18:49:58 +0000

O mesmo problema aqui, com 27 intervalos de nomes misteriosos. Usei Ctrl+F3 (como recomendado noutra resposta) para ver a lista de gamas nomeadas (que eu nunca tinha criado!). Havia muitos desde que tinha copiado a tabulação da folha de trabalho muitas vezes e apenas clicado “sim” para trabalhar em torno da mensagem. Destaquei e apaguei todos os intervalos nomeados (um pequeno ecrã de cada vez, não consegui seleccionar todos). A próxima vez que tentei copiar a folha de trabalho, a cópia foi bem sucedida sem a mensagem de aviso.

Certifique-se de copiar o seu ficheiro original antes de tentar isto.