Come posso creare un collegamento ipertestuale a sezioni specifiche di un file HTML in Excel?


8

Ho un file HTML che include ancore al suo interno. Sono in grado di accedere a una sezione specifica tramite un browser se specifico il nome dell'ancora, quindi quando scrivo
file://<html_path>/<html_file>.html#<anchor_name>
nella casella dell'indirizzo del mio browser, il file si apre e scorre fino alla sezione corretta.

Se inserisco lo stesso collegamento in una HYPERLINKfunzione in Excel, il collegamento apre semplicemente la pagina Web, tagliando la #parte e non scorre fino alla sezione specificata. Se inserisco un collegamento a una pagina Web con una parte di ancoraggio nella HYPERLINKfunzione, sembra funzionare correttamente, quindi i http://collegamenti con #non verranno tagliati e continueranno a funzionare.

La ricerca su Google restituisce questo post sul forum e diversi articoli KB che affermano che l'hash non può essere utilizzato in un nome file all'interno dell'ufficio sebbene sia un carattere nome file valido. La stessa pagina afferma che questo è stato risolto in Excel 2010 ma sto usando la versione 2010 ed è apparentemente ancora un problema.

C'è una soluzione a questo? Ho intenzione di collegare ogni riga a una sezione diversa nel file di destinazione, e ci sono più di 1000 righe, quindi l'opzione per spezzare il file html originale in più o generare URL separati per ogni sezione e collegarsi a invece creerebbe un disordine di File.


Non posso fornire una risposta perché non posso testare in questo momento, ma hai provato usando la codifica, quindi usando '% 23' invece di '#'
HTDutchy

Ho appena controllato questo, non sembra funzionare. Excel visualizza un messaggio di errore "Impossibile aprire il file specificato"
JohnoBoy

@terdon 'Pound sign / key' è un nome valido per il #personaggio, vedi l'articolo WikiPedia , nota anche il post sul forum e gli articoli KB ad esso collegati usano lo stesso nome
JohnoBoy

@JohnoBoy, così è. Mi correggo, scusa. Sentiti libero di ripristinare la mia modifica.
terdon,

Risposte:


2

Prova questo. Per ogni riga, avrai bisogno di due colonne. Il primo conterrà il nome del tuo segnalibro per ogni riga. Il secondo conterrà un collegamento ipertestuale, che punta a se stesso.

Per inserire collegamenti ipertestuali autoreferenziali per molte righe, eseguire una macro come questa:

Sub AddHyperlinksPointingToOwnCell()

   For i = 1 To 100

   Range("A" & i).Select
   ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
       "Sheet1!A" & i, TextToDisplay:="Click Here!"

   ActiveCell.Offset(1, 0).Select

   Next i

End Sub

Ora hai bisogno di un sub per aprire il browser nella posizione corretta. Modifica questo in modo che i percorsi di file e browser siano corretti:

Sub GoToBookmark()

    Dim ThisRow As Integer
    Dim ThisCol As Integer
    Dim BookmarkName As String

    ThisRow = ActiveCell.Row
    ThisCol = ActiveCell.Column
    BookmarkName = Cells(ThisRow, ThisCol - 1).Value
        'This is looking in the cell to the left for the bookmark name

    If BookmarkName = "" Then
        Exit Sub
    End If

    Shell "C:\Program Files\Internet Explorer\IEXPLORE.EXE " & _
        "C:\PathRoot\Folder\filename.html#" & BookmarkName & ", vbNormalFocus"

End Sub

Infine, dovrai aggiungere un evento Worksheet_FollowHyperlink per il foglio contenente il tuo elenco:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Run ("GoToBookmark")
End Sub

Spero che dovrebbe farlo!



@JohnoBoy - ha funzionato per te?
Johnny Utahh,

Questo è stato molto tempo fa, credo di aver rinunciato del tutto ai collegamenti ipertestuali.
JohnoBoy,

0

Ecco un'altra soluzione per te, se non vuoi usare la codifica VBA puoi comunque usare la funzione Excel "hyperlink". Ecco una guida passo passo per farlo.

file online: Passaggio 1: supponiamo che il nome del tuo file sia: http://it.wikipedia.org/wiki/Intel_Core Passaggio 2: ora aggiungi i tuoi nomi di ancoraggio in A1: A4
Core_Duo
Core_Solo
Core_2_Duo
Core_i7
Passaggio 3: nella cella B2 inserisci questo :

=HYPERLINK("http://en.wikipedia.org/wiki/Core_i3#"&A2,"A2")  

Passaggio 4: fare clic e trascinare per applicare per il resto delle celle
Testato funzionante !!!


1
Purtroppo Kamalam, il poster originale stava cercando di fare questo per i file ospitati localmente sull'unità C :. Se provi di nuovo usando file://C:/questo non funziona. È un peccato perché sarebbe molto più facile se funzionasse!
Andi Mohr,

Inoltre, questo non funziona nemmeno sul web
Gerrat,

-1

Se capisco bene la tua domanda qui è un lavoro intorno Fonte = Qui Workaround Per aggirare questo problema, utilizzare uno dei seguenti metodi. Metodo 1

Rinominare il file con un nome che non include il cancelletto, quindi modificare o ricreare il collegamento ipertestuale.

Per ulteriori informazioni su come rinominare un file in Windows, consultare la documentazione stampata di Windows o la Guida in linea.

Per modificare il collegamento ipertestuale, attenersi alla seguente procedura:

Per Office 2003 e versioni precedenti di Office: fare clic con il pulsante destro del mouse sulla cella che contiene il collegamento ipertestuale problema. Dal menu di scelta rapida visualizzato, scegliere collegamento ipertestuale e fare clic su Modifica collegamento ipertestuale. Nella casella Digita il nome del file o della pagina Web, digita il nome del file a cui stai collegando. Se non si conosce il nome del file, fare clic su File e selezionare il file. Clicca OK.

Per i programmi di Office 2007 e Office 2010: fare clic con il pulsante destro del mouse sulla cella che contiene il collegamento ipertestuale problema, quindi scegliere Modifica collegamento ipertestuale. Nella casella Indirizzo, digitare il nome del file a cui ci si sta collegando. Se non si conosce il nome del file, utilizzare gli strumenti di ricerca nella riga Cerca in ... per individuare il file. Selezionare il file e quindi fare clic su OK. Metodo 2

Utilizzare il comando Incolla come collegamento ipertestuale:

Per Office 2003 e versioni precedenti: aprire il documento a cui si sta tentando di collegarsi (che contiene il segno # nel nome). Copia la cella a cui desideri collegarti. Nel documento, dal menu Modifica, fare clic su Incolla come collegamento ipertestuale.

Per i programmi di Office 2007 e Office 2010: aprire il documento a cui si sta tentando di collegarsi. Questo è il documento che contiene il segno # nel nome. Copia la cella a cui desideri collegarti. Nel documento, fare clic sulla cella in cui si desidera visualizzare il collegamento ipertestuale. Nella scheda Home, fare clic sulla freccia sotto Incolla nel gruppo Appunti, quindi fare clic su Incolla come collegamento ipertestuale

se stai usando il codice VBA questa riga può essere di aiuto Ho testato it.it funziona sia con Chrome che con Firefox
ActiveSheet.Hyperlink.Add Anchor: = Selection, Address: = "C: \ path \ to \ your \ file.htm" , SubAddress: = "nameOfYourAnchor", TextToDisplay: = "testo da visualizzare")

qui nameOfYourAnchor senza # Sym, ad esempio se il tuo link è C: / Users / [User] / Desktop / Intel Core - Wikipedia, encyclopedia.htm # Core_i3 gratuito il tuo codice sarà ( ActiveSheet.Hyperlink.Add Anchor: = Selezione, indirizzo: = "C: / Users / User / Desktop / Intel Core - Wikipedia, l'enciclopedia libera.htm", indirizzo secondario: = "Core_i3", TextToDisplay: = "testo da visualizzare" )
spero che questo sia di aiuto.


Il problema è che il file non include un cancelletto nel suo nome. Uso il cancelletto per collegarmi a una sezione specifica del file
JohnoBoy

2
dai un'occhiata agli ultimi due paragrafi.
Kamalam,

@kamalam, in apparenza questa è una soluzione molto accurata. Tuttavia non riesco a far funzionare questo codice? Puoi pubblicare l'intero sub che funziona per te, per favore?
Andi Mohr,

-1

Quanto segue funziona generalmente su Windows 7 con Excel 2007. Il file viene collocato con il foglio di calcolo. Il contenuto della cella:

= HYPERLINK ("dump_faults_current_leg_bite.htm # BiteRec_000", "Record BITE 1/35")

Ci sono alcuni PC desktop qui che hanno problemi con questo collegamento, tuttavia, viene visualizzato l'errore "Impossibile aprire il file specificato".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.