[难度挑战?]如何获取文档结构图中章节并下拉列表化来定位。参GetCrossReferenceItems
时间:2011-01-28
来源:互联网
GetCrossReferenceItems(wdRefTypeHeading)返回的类型是String数组
这很奇怪,为什么返回的不是Heading对象数组,这样应该可以用于定位,解析等功能
现在就只能这样写
但LocateToParagraph在文档大的时候,速度就很慢了
[ 本帖最后由 matepi 于 2011-1-28 10:45 编辑 ]
这很奇怪,为什么返回的不是Heading对象数组,这样应该可以用于定位,解析等功能
现在就只能这样写
复制内容到剪贴板
Sub test()
GetParagraphText
LocateToParagraph "10.7.1"
End Sub
Sub LocateToParagraph(paraName As String)
Dim iListParagraphsCount As Integer, i As Integer
iListParagraphsCount = ActiveDocument.ListParagraphs.Count
For i = 1 To iListParagraphsCount
With ActiveDocument.ListParagraphs(i)
If .OutlineLevel <> wdOutlineLevelBodyText Then
Debug.Print .Range.ListFormat.ListString
Debug.Print .Range.Text
If .Range.ListFormat.ListString = paraName Then
Application.Selection.SetRange .Range.Start, .Range.Start
ActiveWindow.ScrollIntoView .Range
Exit Sub
End If
End If
End With
Next i
End Sub
Sub GetParagraphText()
Dim paragraphItems() As String, i As Integer
paragraphItems() = ActiveDocument.GetCrossReferenceItems(wdRefTypeHeading)
For i = 1 To UBound(paragraphItems)
Debug.Print paragraphItems(i)
Next i
End Sub
GetParagraphText速度很快代码:
Option ExplicitSub test()
GetParagraphText
LocateToParagraph "10.7.1"
End Sub
Sub LocateToParagraph(paraName As String)
Dim iListParagraphsCount As Integer, i As Integer
iListParagraphsCount = ActiveDocument.ListParagraphs.Count
For i = 1 To iListParagraphsCount
With ActiveDocument.ListParagraphs(i)
If .OutlineLevel <> wdOutlineLevelBodyText Then
Debug.Print .Range.ListFormat.ListString
Debug.Print .Range.Text
If .Range.ListFormat.ListString = paraName Then
Application.Selection.SetRange .Range.Start, .Range.Start
ActiveWindow.ScrollIntoView .Range
Exit Sub
End If
End If
End With
Next i
End Sub
Sub GetParagraphText()
Dim paragraphItems() As String, i As Integer
paragraphItems() = ActiveDocument.GetCrossReferenceItems(wdRefTypeHeading)
For i = 1 To UBound(paragraphItems)
Debug.Print paragraphItems(i)
Next i
End Sub
但LocateToParagraph在文档大的时候,速度就很慢了
[ 本帖最后由 matepi 于 2011-1-28 10:45 编辑 ]
作者: matepi 发布时间: 2011-01-28
很遗憾通知楼上朋友,您的帖子在24小时之内没有任何回复!
通常情况下,本论坛发布的主题帖会在8小时被回复或处理。您的帖子在24小时之内未被回复,其中的原因可能是:
1、问题表述不清、模棱两可,难以理解,帮助者被搞晕了,夺帖而出;
2、没有上传必要的附件,或附件被遗忘在某个角落;
3、发帖提问时,语气带棱角、带挑衅,不幸被列入不受欢迎的帖子;
4、所提问题不成立,或提不合理的要求,乐于助人者使出“走为上”之计;
5、话题较偏、较冷或者发布到了不合适的版块,暂时无人问津,顾影自怜。
为了提高您的问题解决效率,我们推荐您阅读以下文章:
* 如何发表新话题和上传附件:http://club.excelhome.net/thread-45649-1-1.html
* 发帖的技巧:http://club.excelhome.net/thread-176339-1-1.html
* EH技术论坛的最佳学习方法:http://club.excelhome.net/thread-117862-1-1.html
作者: Admin 发布时间: 2011-01-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28