ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4709|回复: 5

怎么自动添加锚链,并用链接指向该锚链

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-12-30 17:00 | 显示全部楼层 |阅读模式
LZpVD8J7.rar (9.52 KB, 下载次数: 14)   上面是一个每天例行的工作薄,其中有三个表格,表格都是由数据库导出到EXCLE表格中,再转帖至WORD文档。(分别命名为表格一,表格二,表格三)   其中要做的事情是:   1:将表格三里每一个合并过的单元格中的“股票(代码)”部分增加为锚链;   2:用表格一对应表格三的“股票”,在“摘要”中使用链接指向该锚链;   3:在表头设定一个锚链,并使所有的返回都指向该锚链。   如果想将这一部分的内容,用宏或是其他的方法较快捷地完成,应该怎么做?

TA的精华主题

TA的得分主题

发表于 2005-12-31 08:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

什么叫锚链?是锁定标记是的锚链吗?我理解不是,好象是超级链接吧?

能否请大哥范例一个,我学习一下这个“锚链”是什么样子的吗?

然后,我们会处理的。

谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-31 11:12 | 显示全部楼层
不好意思,对WORD不太熟悉,锚链应该是网页中的叫法,在WORD中可能应该叫标签或书签什么的。见笑。 还有,不要叫我大哥,我是女的。
[此贴子已经被作者于2005-12-31 11:13:03编辑过]

TA的精华主题

TA的得分主题

发表于 2005-12-31 15:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-1-6 09:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

深有同感,我在工作中有时也会遇到做很多书签,不断点击某处的超链跳到指定处的问题,其实有把WORD做得有点像网页,每天在这上面要花大量的时间

请各位高手给我们一些指点

TA的精华主题

TA的得分主题

发表于 2006-1-6 16:33 | 显示全部楼层
请楼主测试一下: Option Explicit Sub Example() Dim myTable As Table, myBM As String, Columnid As Byte, aCell As Cell Dim myRange As Range, Rowid As Integer, i As Integer, n As Integer Dim startPost As Long, EndPost As Long myBM = "myBookMark" With ActiveDocument Set myTable = .Tables(2) '定义一个表格对象为文档中的表格2 Set myRange = myTable.Cell(1, 1).Range '定义一个RANGE对象为表格2的第一个单元格 myRange.SetRange myRange.Start, myRange.End - 1 '重新定义RANGE对象(去除单元格结束标记) .Bookmarks.Add Name:=myBM & "0", Range:=myRange '此RANGE对象添加一个书签(返回) For Each aCell In myTable.Range.Cells '在该表格中循环 Rowid = aCell.RowIndex '取得行号 Columnid = aCell.ColumnIndex '取得列号 If Rowid > 2 Then '如果行号>2 If Columnid = 2 Then '如果在第2列(股票代码) Set myRange = aCell.Range '定义一个RANGE对象 myRange.SetRange myRange.Start, myRange.End - 1 '去除段单元格结束标记 .Bookmarks.Add Name:=myBM & aCell.RowIndex - 2, Range:=myRange '添加书签 ElseIf Columnid = 7 Then '如果为第7列(报告摘要) Set myRange = aCell.Range myRange.SetRange myRange.Start, myRange.End - 1 .Bookmarks.Add Name:="摘要" & aCell.RowIndex - 2, Range:=myRange End If End If Next Set myRange = .Range(myTable.Range.End, myTable.Range.End) myRange.InsertAfter "▲返回" '在该表格后面自动插入一个文字,并且为右对齐 myRange.ParagraphFormat.Alignment = wdAlignParagraphRight .Hyperlinks.Add Anchor:=myRange, SubAddress:=myBM & "0" '添加一个超级链接,指向第一个单元格 Set myTable = .Tables(4) '定义一个表格对象,为活动文档的第四个表格 For Each aCell In myTable.Range.Cells '在单元格中循环 If VBA.InStr(aCell.Range.Text, "报告日期") > 0 Then '如果带有指定文本,注意此处标识不显著 Set myRange = aCell.Range startPost = VBA.InStr(myRange.Text, "(") '以左右括号为标识 EndPost = VBA.InStr(myRange.Text, ")") myRange.SetRange myRange.Start + startPost, myRange.Start + EndPost - 1 n = n + 1 '累加 .Hyperlinks.Add Anchor:=myRange, SubAddress:=myBM & n '增加超级链接 myRange.SetRange myRange.Paragraphs(1).Range.Start, myRange.Paragraphs(1).Range.Start i = i + 1 '累加 .Bookmarks.Add Name:="股票" & i, Range:=myRange '添加书签 .Hyperlinks.Add Anchor:=.Bookmarks("摘要" & i).Range, SubAddress:="股票" & i '将摘要的超级链接指向此书签对象 ElseIf VBA.InStr(aCell.Range.Text, "返回") > 0 Then Set myRange = aCell.Range myRange.SetRange myRange.Start, myRange.End - 1 .Hyperlinks.Add Anchor:=myRange, SubAddress:=myBM & "0" End If Next End With End Sub Sub DelAllBMHpyerlinks() '初始化,清除所有书签和断开所有超级链接 Dim oBM As Bookmark With ActiveDocument For Each oBM In .Bookmarks oBM.Delete Next .Fields.Unlink End With End Sub
[此贴子已经被作者于2006-1-6 18:52:44编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 03:49 , Processed in 0.043695 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表