如何在 Excel 中创建指向 HTML 文件特定部分的超链接?

如何在 Excel 中创建指向 HTML 文件特定部分的超链接?

我有一个包含锚点的 HTML 文件。如果我指定锚点名称,我就可以通过浏览器访问特定部分,因此当我
file://<html_path>/<html_file>.html#<anchor_name>
在浏览器的地址框中输入时,文件会打开并滚动到正确的部分。

如果我将相同的链接放入HYPERLINKExcel 中的函数中,该链接只会打开网页,修剪部分#,并且不会滚动到指定的部分。如果我将带有锚点部分的网页链接放入函数中HYPERLINK,它似乎可以正常工作,因此http://链接#不会被修剪并且仍然有效。

搜索 Google 返回此论坛帖子还有几篇 KB 文章指出,虽然哈希是有效的文件名字符,但不能在 Office 中的文件名中使用。同一页面指出,此问题已在 Excel 2010 中得到解决,但我使用的是 2010 版本,显然这仍然是一个问题。

有解决方法吗?我打算将每一行链接到目标文件中的不同部分,并且有 1000 多行,因此将原始 html 文件拆分为多个或为每个部分生成单独的 URL 并链接到的选项会造成文件混乱。

答案1

试试这个。每行都需要两列。第一列包含每行书签的名称。第二列包含指向书签本身的超链接。

要为多行插入自引用超链接,请运行如下宏:

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

现在您需要一个子程序来打开浏览器到正确的位置。编辑此文件以确保文件和浏览器路径正确:

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

最后,您需要为包含列表的工作表添加 Worksheet_FollowHyperlink 事件:

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

希望这样可以做到!

答案2

这是另一个解决方案,如果您不想使用 VBA 编码,您仍然可以使用 Excel 函数“超链接”。以下是分步指南。

在线文件:步骤 1:假设您的文件名是:http://en.wikipedia.org/wiki/Intel_Core
步骤 2:现在在 A1:A4 Core_Duo
Core_Solo
Core_2_Duo
Core_i7 中添加锚点名称
步骤 3:在单元格 B2 中输入以下内容:

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

步骤 4:单击并拖动以应用于其余单元格,
测试有效!!!

答案3

如果我理解你的问题很好,这里有一个解决方法来源=这里 解决方法要解决此问题,请使用下列方法之一。方法 1

使用不包含井号的名称重命名该文件,然后编辑或重新创建超链接。

有关如何在 Windows 中重命名文件的详细信息,请参阅 Windows 印刷文档或联机帮助。

要编辑超链接,请按照以下步骤操作:

对于 Office 2003 和更早版本的 Office:右键单击包含问题超链接的单元格。在出现的快捷菜单上,指向“超链接”,然后单击“编辑超链接”。在“键入文件或网页名称”框中,键入要链接到的文件的名称。如果您不知道文件的名称,请单击“文件”并浏览到该文件。单击“确定”。

对于 Office 2007 和 Office 2010 程序:右键单击包含问题超链接的单元格,然后指向“编辑超链接”。在“地址”框中,键入要链接到的文件的名称。如果您不知道文件的名称,请使用“查找范围...”行上的搜索工具来查找该文件。选择该文件,然后单击“确定”。方法 2

使用粘贴为超链接命令:

对于 Office 2003 及更早版本:打开您要链接到的文档(其名称中包含 # 符号)。复制要链接到的单元格。在文档中的“编辑”菜单上,单击“粘贴为超链接”。

对于 Office 2007 和 Office 2010 程序:打开您要链接到的文档。这是名称中包含 # 符号的文档。复制要链接到的单元格。在文档中,单击要显示超链接的单元格。在“开始”选项卡上,单击“剪贴板”组中“粘贴”下方的箭头,然后单击“粘贴为超链接”

如果你使用 VBA 代码,这一行可能会有帮助,我已经测试过了。它在 chrome 和 Firefox 中都可以工作
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= "C:\path\to\your\file.htm", SubAddress:="nameOfYourAnchor", TextToDisplay:= "要显示的文本")

这里是 nameOfYourAnchor没有 #Sym 例如如果你的链接是C:/Users/[User]/Desktop/Intel Core - 维基百科,自由的百科全书.htm#Core_i3您的代码将是(ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= "C:/Users/User/Desktop/Intel Core - Wikipedia, the free encyclopedia.htm", SubAddress:="Core_i3", TextToDisplay:= "要显示的文本"
希望这能有所帮助。

答案4

以下内容通常适用于装有 Excel 2007 的 Windows 7。该文件与电子表格共存。单元格内容:

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

这里的一些台式电脑在处理此链接时遇到了问题,出现“无法打开指定文件”的错误。

相关内容