Joh*_*Boy 8 html microsoft-excel-2010
我有一个 HTML 文件,其中包含锚点。如果我指定锚点名称,我就可以通过浏览器访问特定部分,因此当我
file://<html_path>/<html_file>.html#<anchor_name>
在浏览器的地址框中写入时,文件会打开并滚动到正确的部分。
如果我将相同的链接放入HYPERLINKExcel 中的函数中,该链接只会打开网页,修剪#部分,而不会滚动到指定的部分。如果我在HYPERLINK函数中放置了一个指向带有锚点部分的网页的链接,它似乎可以正常工作,因此http://链接#不会被修剪并且仍然可以工作。
搜索 Google 会返回此论坛帖子和几篇 KB 文章,其中说明哈希不能用于 office 内的文件名,尽管它是有效的文件名字符。同一页面指出这已在 Excel 2010 中解决,但我使用的是 2010 版本,这显然仍然是一个问题。
有解决方法吗?我打算将每一行链接到目标文件中的不同部分,并且有 1000 多行,因此选择将原始 html 文件分解为多个或为每个部分生成单独的 URL 并链接到文件。
尝试这个。对于每一行,您需要两列。第一个将包含每行的书签名称。第二个将包含一个指向其自身的超链接。
要为多行插入自引用超链接,请运行如下宏:
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
Run Code Online (Sandbox Code Playgroud)
现在您需要一个子程序来将浏览器打开到正确的位置。编辑此文件以使文件和浏览器路径正确:
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
Run Code Online (Sandbox Code Playgroud)
最后,您需要为包含列表的工作表添加 Worksheet_FollowHyperlink 事件:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Run ("GoToBookmark")
End Sub
Run Code Online (Sandbox Code Playgroud)
希望这应该能做到!
| 归档时间: |
|
| 查看次数: |
7705 次 |
| 最近记录: |