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

Perché Excel ora mi dà un avviso di intervallo di nomi già esistenti su Copia foglio?

Sto lavorando su un foglio di calcolo di Microsoft Excel 2007 da diversi giorni. Sto lavorando da un modello principale come foglio e lo copio ripetutamente in un nuovo foglio. Fino ad oggi, questo accadeva senza problemi. Tuttavia, a metà di oggi questo è cambiato improvvisamente e non so perché. Ora, ogni volta che provo a copiare un foglio di lavoro ottengo una decina di finestre di dialogo, ognuna con un oggetto di range di nome diverso (mostrato sotto come ‘XXXX’) e faccio clic su sì per ognuno:

Una formula o un foglio che vuoi spostare o copiare contiene il nome ‘XXXX’, che esiste già nel foglio di lavoro di destinazione. Vuoi usare questa versione del nome?

  • Per usare il nome come definito nel foglio di destinazione, fate clic su Sì.
  • Per rinominare l'intervallo a cui fa riferimento la formula o il foglio di lavoro, fate clic su No e inserite un nuovo nome nella finestra di dialogo Conflitto di nome.

Gli oggetti dell'intervallo di nomi si riferiscono alle celle del foglio. Per esempio, E6 si chiama intervallo di nomi PRE su più fogli (e lo è sempre stato) e alcune formule si riferiscono a PRE invece di $E$6. Uno dei ‘XXXX’ sopra è questo PRE. Questi intervalli di nomi dovrebbero essere risolti solo all'interno del foglio in cui appaiono. Questo non era un problema prima nonostante lo stesso intervallo di nomi esistente su più fogli prima. Voglio mantenere i miei intervalli di nomi.

Cosa potrebbe essere cambiato nel mio foglio di calcolo per causare questo cambiamento di comportamento? Sono tornato ai fogli precedenti creati in questo modo e ora anche loro danno il messaggio quando vengono copiati. Ho provato con un computer diverso e un utente diverso e lo stesso comportamento si vede ovunque. Posso solo concludere che qualcosa nel foglio di calcolo è cambiato. Cosa potrebbe essere e come posso recuperare il vecchio comportamento per cui posso copiare i fogli con intervalli di nomi senza ricevere alcun avviso?

Guardando nell'ambito Name Manager vedo che gli intervalli di nomi di cui ci si lamenta appaiono due volte, una volta come ambito Template e un'altra volta come ambito Workbook. Se cancello l'ambito Template l'avvertimento va via alla copia però, ottengo un mucchio di errori #REF. Se cancello l'ambito Workbook ones, tutto sembra a posto e anche gli avvertimenti sulla copia vanno via, quindi forse questa è la risposta, ma sono nervoso per l'effetto che avrà questa cancellazione e mi chiedo come gli Workbook ones siano venuti in esistenza in primo luogo.

Sarà sicuro cancellare solo le voci Workbook name manager scoped e come possono essere venute in esistenza senza che io lo sapessi?

Risposte (6)

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

Aprite il Name Manager e trovate gli elementi nominati di cui ci si lamenta e cancellate tutti quelli con portata Workbook e il problema di copiare i fogli sparisce e le formule rimangono intatte.

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

Questo non è un errore, ma un avvertimento che un conflitto esiste e offre una scelta su cosa fare

Quando si copia un intervallo che include un riferimento a un intervallo con nome (tipicamente lo scopo del foglio di lavoro), e lo stesso nome esiste nel foglio di destinazione, come fa Excel a sapere quale nome si vuole usare nel risultato?

Per quanto riguarda ciò che è cambiato, ti suggerisco di rivedere tutti i nomi nella tua cartella di lavoro, specialmente per l'ambito.
Name Manager - Ctrl-F3

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

Questi nomi sono per lo più il risultato di un download di dati attraverso un'API di terze parti. Le API tipicamente usano questi nomi come segnaposto per i riferimenti alle celle.

Una volta che hai elaborato dei dati, questi nomi sono per lo più lasciati indietro poiché un utente generico non pulisce i fogli nascosti (o molto nascosti). La difficoltà associata a questi nomi è che anch'essi non appaiono nella casella NOMI e quindi non possono essere cancellati attraverso quell'opzione.

Un modo per farlo è quello di programmarlo attraverso uno script VBA. Esempio qui sotto

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

Notate che questo script cancellerà TUTTI i nomi dalla cartella di lavoro, quindi se ci sono alcuni nomi definiti che vorreste mantenere, inserite le eccezioni nel codice.

Se qualcuno ha una soluzione più efficiente, fatemelo sapere.

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

Ho avuto lo stesso problema e ho provato ogni soluzione fornita, con successo variabile:

1) Ho aperto il Names Manager e, sicuramente, c'erano un sacco di nomi che non ho mai creato; tuttavia, NON erano i nomi di cui ero stato avvisato. Li ho cancellati comunque per liberarmi del disordine, ma non era la soluzione.

2) Ho provato il codice fornito da Viquar (inizio “Sub do_loops\names”). Penso che una parte del codice sia stata saltata, perché non riesco a vedere come faccia effettivamente qualcosa e, di sicuro, non è successo nulla.

3) Ho provato il codice fornito da user345338 (inizia con “Sub TOOLS_…”) - PERFETTO. Mi ha guidato attraverso tutti i nomi nascosti che in qualche modo erano bloccati nella cartella di lavoro e li ha cancellati. Grazie mille, utente345338 (chiunque tu sia!).

BTW, a “codea” - il codice di user345338 non è “inutile” perché ha risolto il mio problema.

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

Stesso problema qui con 27 intervalli nominati misteriosi. Ho usato Ctrl+F3 (come raccomandato in un'altra risposta) per visualizzare l'elenco degli intervalli nominati (che non avevo mai impostato!). Ce n'erano molti, dato che avevo copiato molte volte la scheda del foglio di lavoro e avevo solo cliccato su “sì” per aggirare il messaggio. Ho evidenziato e cancellato tutti gli intervalli nominati (una piccola schermata alla volta, non potevo selezionare tutto). La volta successiva che ho provato a copiare il foglio di lavoro, la copia è riuscita senza il messaggio di avvertimento.

Assicurati di copiare il tuo file originale prima di provare questo.