+ -
当前位置:首页 → 问答吧 → [难度挑战?]如何获取文档结构图中章节并下拉列表化来定位。参GetCrossReferenceItems

[难度挑战?]如何获取文档结构图中章节并下拉列表化来定位。参GetCrossReferenceItems

时间:2011-01-28

来源:互联网

GetCrossReferenceItems(wdRefTypeHeading)返回的类型是String数组
这很奇怪,为什么返回的不是Heading对象数组,这样应该可以用于定位,解析等功能

现在就只能这样写
复制内容到剪贴板
代码:
Option Explicit

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速度很快
但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

热门下载

更多