Como posso criar um hiperlink para as seções específicas de um arquivo HTML no Excel?

8

Eu tenho um arquivo HTML que inclui âncoras dentro dele. Consigo acessar uma seção específica por meio de um navegador se especificar o nome da âncora; portanto, quando escrevo
file://<html_path>/<html_file>.html#<anchor_name>
na caixa de endereço do navegador, o arquivo é aberto e rola para a seção correta.

Se eu colocar o mesmo link em uma HYPERLINKfunção no Excel, o link abrirá a página da Web, aparando a #peça e não rolar para a seção especificada. Se eu colocar um link para uma página da Web com uma parte âncora na HYPERLINKfunção, ele parece funcionar corretamente, portanto, os http://links com #não serão aparados e ainda funcionarão.

A busca no Google retorna esta postagem no fórum e vários artigos da base de dados que afirmam que o hash não pode ser usado em um nome de arquivo no escritório, embora seja um caractere válido. A mesma página indica que isso foi resolvido no Excel 2010, mas estou usando a versão 2010 e, aparentemente, ainda é um problema.

Existe uma solução alternativa para isso? Pretendo vincular cada linha a uma seção diferente no arquivo de destino, e há mais de 1000 linhas, portanto, a opção de dividir o arquivo html original em vários ou gerar URLs separados para cada seção e vincular ao arquivo criaria uma confusão de arquivos.

JohnoBoy
fonte
Eu não posso fazer isso uma resposta que eu não posso testar agora, mas você tem testados usando a codificação-lo usando '% 23' em vez de '#'
HTDutchy
Acabei de verificar isso, não parece funcionar. O Excel exibe uma mensagem de erro "Não é possível abrir o arquivo especificado"
JohnoBoy 10/01
@terdon 'Sinal da libra / key' é um nome válido para o #personagem, consulte o artigo da Wikipedia , também notar o post no fórum e artigos KB ligados a ele usar o mesmo nome
JohnoBoy
@JohnoBoy, assim é. Eu estou corrigido, desculpe. Sinta-se livre para reverter minha edição.
terdon 14/01

Respostas:

2

Tente isso. Para cada linha, você precisará de duas colunas. O primeiro conterá o nome do seu marcador para cada linha. O segundo conterá um hiperlink, apontando para si mesmo.

Para inserir hiperlinks de referência própria para muitas linhas, execute uma 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

Agora você precisa de um sub para abrir o navegador no local correto. Edite isso para que os caminhos do arquivo e do navegador estejam corretos:

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

Por fim, você precisará adicionar um evento Worksheet_FollowHyperlink para a planilha que contém sua lista:

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

Espero que isso aconteça!

Andi Mohr
fonte
Vou olhar para isso e relatar de volta, graças
JohnoBoy
@JohnoBoy - isso funcionou para você?
Johnny Utahh
Isso foi há muito tempo, acredito que desisti completamente dos hiperlinks.
21415 John
0

Aqui está outra solução para você: se você não quiser usar a codificação VBA, ainda poderá usar a função "hiperlink" do Excel. Aqui está um guia passo a passo para fazê-lo.

arquivo on-line: Etapa 1: digamos que seu nome de arquivo seja: http://en.wikipedia.org/wiki/Intel_Core Etapa 2: agora adicione seus nomes de âncora em A1: A4
Core_Duo
Core_Solo
Core_2_Duo
Core_i7
Etapa 3: na célula B2, digite este :

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

Etapa 4: clique e arraste para solicitar o restante das células
Testadas funcionando !!!

Kamalam
fonte
11
Infelizmente, kamalam, o pôster original estava procurando fazer isso para arquivos hospedados localmente na unidade C :. Se você tentar novamente usando file://C:/isso não funcionará. É uma pena, porque seria muito mais fácil se isso funcionasse!
Andi Mohr
Além disso, este nem sequer funciona na web
Gerrat
-1

Se eu entendi bem a sua pergunta, aqui está um trabalho ao redor Source = Here trabalho ao redor Como Contornar Para contornar esse problema, use um dos seguintes métodos. Método 1

Renomeie o arquivo com um nome que não inclua o sinal de libra e edite ou recrie o hiperlink.

Para obter mais informações sobre como renomear um arquivo no Windows, consulte a documentação impressa do Windows ou a Ajuda online.

Para editar o hiperlink, siga estas etapas:

Para o Office 2003 e versões anteriores do Office: Clique com o botão direito do mouse na célula que contém o hiperlink do problema. No menu de atalho que aparece, aponte para Hiperlink e clique em Editar Hiperlink. Na caixa Digite o nome do arquivo ou da página da Web, digite o nome do arquivo ao qual você está vinculando. Se você não souber o nome do arquivo, clique em Arquivo e navegue até o arquivo. Clique OK.

Para programas do Office 2007 e Office 2010: Clique com o botão direito do mouse na célula que contém o hiperlink do problema e aponte para Editar Hiperlink. Na caixa Endereço, digite o nome do arquivo ao qual você está vinculando. Se você não souber o nome do arquivo, use as ferramentas de pesquisa na linha Examinar ... para localizar o arquivo. Selecione o arquivo e clique em OK. Método 2

Use o comando Colar como hiperlink:

Para o Office 2003 e versões anteriores: Abra o documento ao qual você está tentando vincular (que contém o sinal # no nome). Copie a célula à qual você deseja vincular. No seu documento, no menu Editar, clique em Colar como hiperlink.

Para programas do Office 2007 e Office 2010: Abra o documento ao qual você está tentando vincular. Este é o documento que contém o sinal # no nome. Copie a célula à qual você deseja vincular. No seu documento, clique na célula na qual você deseja que o hiperlink apareça. Na guia Início, clique na seta abaixo de Colar no grupo Área de transferência e clique em Colar como hiperlink.

se você estiver usando o código VBA, esta linha pode ser útil, pois eu testei. Está funcionando tanto no ActiveSheet do Chrome quanto no Firefox
ActiveX.Hyperlinks.Add Anchor: = Seleção, Endereço: = "C: \ caminho \ para \ seu \ arquivo.htm" , SubAddress: = "nameOfYourAnchor", TextToDisplay: = "texto a ser exibido")

aqui nameOfYourAnchor sem o # Sym, por exemplo, se o link for C: / Users / [User] / Desktop / Intel Core - Wikipedia, enciclopédia livre.htm # Core_i3, seu código será ( ActiveSheet.Hyperlinks.Add Anchor: = Seleção, Endereço: = "C: / Usuários / Usuário / Desktop / Intel Core - Wikipedia, enciclopédia livre.htm", SubAddress: = "Core_i3", TextToDisplay: = "texto a ser exibido" )
espero que isso ajude.

Kamalam
fonte
O problema é que o arquivo não inclui um sinal de libra em seu nome. Eu uso o sinal de libra para link para uma seção específica no arquivo
JohnoBoy
2
veja os dois últimos parágrafos.
kamalam
@kamalam, na superfície, essa é uma solução muito elegante. No entanto, não consigo fazer esse código funcionar? Você pode postar o sub completo que funciona para você, por favor?
Andi Mohr
-1

O seguinte geralmente funciona no Windows 7 com Excel 2007. O arquivo é colocado na planilha. O conteúdo da célula:

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

No entanto, existem alguns computadores desktop com problemas neste link, que recebem o erro "Não é possível abrir o arquivo especificado".

Toolman
fonte