Rintracciare riferimenti non validi (Microsoft Excel)
Joel ha notato che quando chiude una cartella di lavoro che contiene migliaia di formule, ultimamente riceve questo messaggio: “Una formula in questo foglio di lavoro contiene uno o più riferimenti non validi”. Joel si chiede come possa sapere a quale dei sette fogli di lavoro in questa cartella di lavoro si fa riferimento. Come posso trovare la formula errante? Non osservo alcun problema nella visualizzazione delle informazioni sui miei rapporti.
Trovare riferimenti non validi può essere frustrante. Ci sono molti posti in cui puoi iniziare a cercare. Il primo è nelle formule che si trovano sui fogli di lavoro. (Sì, è necessario eseguire questi passaggi per ogni foglio di lavoro nella cartella di lavoro.) Utilizzare la finestra di dialogo Vai a speciale (premere F5 e scegliere Speciale) per scegliere di andare solo alle celle che contengono errori. È quindi possibile utilizzare il tasto Tab per spostarsi tra le celle selezionate da Excel.
È inoltre possibile utilizzare lo strumento Trova per cercare possibili errori. Basta premere Ctrl + F per visualizzare la scheda Trova della finestra di dialogo Trova e sostituisci, quindi cercare il carattere #. Assicurati di dire a Excel di eseguire la ricerca all’interno delle formule. Ispeziona tutto ciò che viene trovato per vedere se si tratta di un errore o meno.
Dovresti anche dare un’occhiata a tutti gli intervalli denominati definiti nella tua cartella di lavoro. Guarda ogni nome nella finestra di dialogo Definisci (Inserisci | Nome | Definisci), assicurandoti che tutto ciò che è nella casella Si riferisce a non includa indicazioni di errore.
Questi non sono tutti i posti in cui potrebbero esserci errori; Excel è davvero bravo a lasciare che gli errori esistano in molti posti. Se devi cercare spesso gli errori, potresti provare una macro che esamina le tue formule per eventuali errori.
Sub CheckReferences() ' Check for possible missing or erroneous links in ' formulas and list possible errors in a summary sheet Dim iSh As Integer Dim sShName As String Dim sht As Worksheet Dim c As Cell Dim sChar As String Dim rng As Range Dim i As Integer, j As Integer Dim wks As Worksheet Dim sChr As String, addr As String Dim sFormula As String, scVal As String Dim lNewRow As Long Dim vHeaders vHeaders = Array("Sheet Name", "Cell", "Cell Value", "Formula") 'check if 'Summary' worksheet is in workbook 'and if so, delete it With Application .ScreenUpdating = False .DisplayAlerts = False .Calculation = xlCalculationManual End With For i = 1 To Worksheets.Count If Worksheets(i).Name = "Summary" Then Worksheets(i).Delete End If Next i iSh = Worksheets.Count 'create a new summary sheet Sheets.Add After:=Sheets(iSh) Sheets(Sheets.Count).Name = "Summary" With Sheets("Summary") Range("A1:D1") = vHeaders End With lNewRow = 2 ' this will not work if the sheet is protected, ' assume that sheet should not be changed; so ignore it On Error Resume Next For i = 1 To iSh sShName = Worksheets(i).Name Application.Goto Sheets(sShName).Cells(1, 1) Set rng = Cells.SpecialCells(xlCellTypeFormulas, 23) For Each c In rng addr = c.Address sFormula = c.Formula scVal = c.Text For j = 1 To Len(c.Formula) sChr = Mid(c.Formula, j, 1) If sChr = "[" Or sChr = "!" Or _ IsError(c) Then 'write values to summary sheet With Sheets("Summary") .Cells(lNewRow, 1) = sShName .Cells(lNewRow, 2) = addr .Cells(lNewRow, 3) = scVal .Cells(lNewRow, 4) = "'" & sFormula End With lNewRow = lNewRow + 1 Exit For End If Next j Next c Next i ' housekeeping With Application .ScreenUpdating = True .DisplayAlerts = True .Calculation = xlCalculationAutomatic End With Set wks = Nothing Set sht = Nothing Set rng = Nothing ' tidy up Sheets("Summary").Select Columns("A:D").EntireColumn.AutoFit Range("A1:D1").Font.Bold = True Range("A2").Select End Sub
Questa macro crea un foglio di lavoro denominato “Riepilogo” utilizzato per elencare le informazioni su eventuali errori rilevati nei collegamenti del foglio di lavoro.
Puoi anche utilizzare il programma FindLink di Bill Manville, MVP di Excel, che fa un ottimo lavoro nell’individuare le informazioni nei collegamenti. È possibile utilizzare il componente aggiuntivo per cercare il carattere # in tutti i collegamenti, il che dovrebbe aiutarti a individuare gli errori. Maggiori informazioni su FindLink possono essere trovate qui:
http://www.manville.org.uk/software/findlink.htm
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (8662) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: