¿Cómo puedo crear un hipervínculo a las secciones específicas de un archivo HTML dentro de Excel?

8

Tengo un archivo HTML que incluye anclas dentro de él. Puedo acceder a una sección específica a través de un navegador si especifico el nombre del ancla, de modo que cuando escribo
file://<html_path>/<html_file>.html#<anchor_name>
en el cuadro de dirección de mi navegador, el archivo se abre y se desplaza a la sección correcta.

Si coloco el mismo enlace en una HYPERLINKfunción en Excel, el enlace solo abre la página web, recorta la #parte y no se desplaza a la sección especificada. Si coloco un enlace a una página web con una parte de anclaje en la HYPERLINKfunción, parece que funciona correctamente, por lo que los http://enlaces con #no se recortarán y seguirán funcionando.

La búsqueda en Google devuelve esta publicación del foro y varios artículos de KB que indican que el hash no se puede usar en un nombre de archivo dentro de la oficina, aunque es un carácter de nombre de archivo válido. La misma página indica que esto se resolvió en Excel 2010, pero estoy usando la versión 2010 y aparentemente sigue siendo un problema.

¿Hay alguna solución para esto? Tengo la intención de vincular cada fila a una sección diferente en el archivo de destino, y hay más de 1000 filas, por lo que la opción de dividir el archivo html original en múltiples o generar URL separadas para cada sección y vincular a la crearía un desorden de archivos

JohnoBoy
fuente
No puedo responder a esto ya que no puedo probar en este momento, pero ¿has probado usando la codificación para usar '% 23' en lugar de '#'
HTDutchy
Acabo de comprobar esto, no parece funcionar. Excel muestra un mensaje de error "No se puede abrir el archivo especificado"
JohnoBoy
@terdon 'Signo / clave' es un nombre válido para el #personaje, vea el artículo de WikiPedia , también observe la publicación del foro y los artículos de KB vinculados a él usan el mismo nombre
JohnoBoy
@JohnoBoy, así es. Estoy corregido, lo siento. Siéntase libre de revertir mi edición.
terdon el

Respuestas:

2

Prueba esto. Para cada fila, necesitará dos columnas. El primero contendrá el nombre de su marcador para cada fila. El segundo contendrá un hipervínculo, apuntando a sí mismo.

Para insertar hipervínculos de autorreferencia para muchas filas, ejecute una macro como esta:

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

Ahora necesita un sub para abrir el navegador en la ubicación correcta. Edite esto para que las rutas del archivo y del navegador sean correctas:

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

Finalmente, deberá agregar un evento Worksheet_FollowHyperlink para la hoja que contiene su lista:

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

¡Con suerte eso debería hacerlo!

Andi Mohr
fuente
Investigaré
@JohnoBoy: ¿esto funcionó para ti?
Johnny Utahh
Esto fue hace mucho tiempo, creo que renuncié a los hipervínculos por completo.
JohnoBoy
0

Aquí hay otra solución para usted, si no desea usar la codificación VBA, puede usar la función de Excel "hipervínculo". Aquí hay una guía paso a paso para hacerlo.

archivo en línea: Paso 1: digamos que su nombre de archivo es: http://en.wikipedia.org/wiki/Intel_Core Paso 2: ahora agregue sus nombres de anclaje en A1: A4
Core_Duo
Core_Solo
Core_2_Duo
Core_i7
Paso 3: en la celda B2 ingrese esto :

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

Paso 4: Haga clic y arrastre para aplicar para el resto de las células
Funcionamiento probado !!!

kamalam
fuente
1
Desafortunadamente kamalam, el póster original buscaba hacer esto para los archivos alojados localmente en la unidad C :. Si intentas esto de nuevo, usar file://C:/esto no funciona. Es una pena porque sería mucho más fácil si eso funcionara.
Andi Mohr
Además, esto ni siquiera funciona en la web
Gerrat
-1

Si he entendido bien su pregunta, aquí hay un trabajo en torno a Source = Here. Solución Para solucionar este problema, utilice uno de los siguientes métodos. Método 1

Cambie el nombre del archivo con un nombre que no incluya el signo de libra y luego edite o vuelva a crear el hipervínculo.

Para obtener más información sobre cómo cambiar el nombre de un archivo en Windows, consulte la documentación impresa de Windows o la Ayuda en línea.

Para editar el hipervínculo, siga estos pasos:

Para Office 2003 y versiones anteriores de Office: haga clic con el botón derecho en la celda que contiene el hipervínculo del problema. En el menú contextual que aparece, seleccione Hipervínculo y haga clic en Editar hipervínculo. En el cuadro Escriba el nombre del archivo o la página web, escriba el nombre del archivo al que está vinculando. Si no conoce el nombre del archivo, haga clic en Archivo y busque el archivo. Haga clic en Aceptar.

Para los programas de Office 2007 y Office 2010: haga clic con el botón derecho en la celda que contiene el hipervínculo problemático y luego seleccione Editar hipervínculo. En el cuadro Dirección, escriba el nombre del archivo al que está vinculando. Si no conoce el nombre del archivo, use las herramientas de búsqueda en la línea Buscar en ... para ubicar el archivo. Seleccione el archivo y luego haga clic en Aceptar. Método 2

Use el comando Pegar como hipervínculo:

Para Office 2003 y versiones anteriores: abra el documento al que está intentando vincular (que contiene el signo # en el nombre). Copie la celda a la que desea vincular. En su documento, en el menú Edición, haga clic en Pegar como hipervínculo.

Para los programas de Office 2007 y Office 2010: abra el documento al que está intentando vincular. Este es el documento que contiene el signo # en el nombre. Copie la celda a la que desea vincular. En su documento, haga clic en la celda en la que desea que aparezca el hipervínculo. En la pestaña Inicio, haga clic en la flecha debajo de Pegar en el grupo Portapapeles y luego haga clic en Pegar como hipervínculo

si está utilizando el código VBA, esta línea puede ser útil. Lo probé. Funciona en ActiveSheet tanto para Chrome como para Firefox. Hipervínculos.
, SubAddress: = "nameOfYourAnchor", TextToDisplay: = "texto para mostrar")

aquí nameOfYourAnchor sin el # Sym, por ejemplo, si su enlace es C: / Users / [User] / Desktop / Intel Core - Wikipedia, la enciclopedia libre .htm # Core_i3 su código será ( ActiveSheet.Hyperlinks.Add Anchor: = Selección, Dirección: = "C: / Usuarios / Usuario / Escritorio / Intel Core - Wikipedia, la enciclopedia libre.htm", Subdirección: = "Core_i3", TextToDisplay: = "texto para mostrar" )
espero que esto haya ayudado.

kamalam
fuente
El problema es que el archivo no incluye un signo de libra en su nombre. Utilizo el signo de libra para vincular a una sección específica en el archivo
JohnoBoy
2
Echa un vistazo a los dos últimos párrafos.
kamalam
@kamalam, en la superficie, esta es una solución muy ordenada. Sin embargo, no puedo hacer que este código funcione? ¿Puedes publicar el sub completo que funcione para ti?
Andi Mohr
-1

Lo siguiente generalmente funciona en Windows 7 con Excel 2007. El archivo se coloca con la hoja de cálculo. El contenido de la celda:

= HIPERVINCULO ("dump_faults_current_leg_bite.htm # BiteRec_000", "BITE record 1/35")

Hay algunas PC de escritorio aquí que tienen problemas con este enlace, sin embargo, aparece el error "No se puede abrir el archivo especificado".

Toolman
fuente