Modifica di un numero enorme di collegamenti ipertestuali (Microsoft Excel)
Wendy ha un singolo foglio di lavoro Excel che contiene oltre 1.200 collegamenti ipertestuali a file TIFF. (Questi sono collegamenti ipertestuali, non collegamenti regolari.) Excel ha singhiozzato e ha dovuto chiudersi, quindi Emily ha utilizzato i file salvati automaticamente per recuperare il file salvato in precedenza. Ora tutti i collegamenti ipertestuali precedentemente funzionanti non funzionano. Aveva i collegamenti ipertestuali alle immagini su un’unità di rete condivisa, ma il salvataggio automatico ha modificato i collegamenti ipertestuali per fare riferimento all’unità C :. Si chiede se esiste un modo semplice per ripristinarli sull’unità di rete condivisa.
A prima vista potrebbe sembrare che sia possibile utilizzare la normale funzione Trova e sostituisci di Excel per trovare la designazione del disco rigido (come in file: // c 🙂 e sostituirla con un’unità di rete (come in file: // shareddrive). Il problema è che questo approccio risolve solo una parte del problema: cambia solo la parte visualizzata del collegamento ipertestuale, non il collegamento ipertestuale sottostante stesso. L’unico modo per accedere al collegamento ipertestuale stesso è tramite l’uso di una macro.
Supponendo che tutti i collegamenti ipertestuali che devono essere modificati siano sullo stesso foglio di lavoro, è possibile utilizzare la seguente macro:
Sub FixHyperlinks1() Dim wks As Worksheet Dim hl As Hyperlink Dim sOld As String Dim sNew As String Set wks = ActiveSheet sOld = "c:\" sNew = "S:\Network\" For Each hl In wks.Hyperlinks hl.Address = Replace(hl.Address, sOld, sNew) Next hl End Sub
Tutto quello che devi fare è modificare i valori assegnati alle variabili sOld e sNew. Se si riceve un errore quando si tenta di eseguire la macro, un errore con la riga contenente la funzione Sostituisci, è perché la funzione Sostituisci non è disponibile in tutte le versioni di Excel. In tal caso dovresti invece usare la seguente macro:
Sub FixHyperlinks2() Dim wks As Worksheet Dim hl As Hyperlink Dim sOld As String Dim sNew As String Set wks = ActiveSheet sOld = "c:\" sNew = "S:\Network\" For Each hl In wks.Hyperlinks hl.Address = Application.WorksheetFunction. _ Substitute(hl.Address, sOld, sNew) Next hl End Sub
Notare che l’unica differenza è l’uso della funzione Sostituisci foglio di lavoro.
_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 (8622) 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: