题目:我是VBA的初学者,手上有长Word文档需浏览,为逼迫本身可以或许看完,欲实现主动翻页功能,用了以下两种编制:
编制一
- Option Explicit
- Dim 结束翻页 As Boolean
- Dim SSS As Integer
- Sub stop()
- 结束翻页 = True
- End Sub
- Sub start()
- SSS = Timer
- 结束翻页 = false
- Do
- If 结束翻页=true Then Exit Do
- If Timer >= SSS + 5 Then
- Application.Browser.Next
- SSS = Timer
- End If
- DoEvents
- Loop
- End Sub
- ========编制二
- Option Explicit
- Dim 结束翻页 As Boolean
- Sub stop()
- 结束翻页 = True
- End Sub
- Sub start()
- 结束翻页 = False
- Application.OnTime Now + TimeValue("00:00:05"), "do_it"
- End Sub
- Sub do_it()
- If 结束翻页 = False Then
- Application.Browser.Next
- start
- End If
- End Sub
两种编制都可实现翻页的功能,但第一种编制用起来太夸大,CPU总是100%;第二种编制比较抱负,绝对的轻松。
但是题目是,我的Word文档都设有九级目次,看书的时辰习惯于将正文与文档布局图对比着看,以理清本身的思路。在快速速读的时辰,这个功能就更有感化。
第一种编制,随着主动翻页,文档布局图中的各级目次也会随着跳转,书翻到哪里,目次的反蓝显示也就跳到哪里。
第二种编制,却没法实现这个功能,目次的反蓝显示永久只在初始的位置。除非书主动翻页今后,在页面中用鼠标点一下,反蓝的目次才会跳转。
这个题目我想是出在利用时候控件的时辰,闪动的光标的性质和正常的光标插入点的性质有点不一样,在翻页后用了插入“”的语句也不可。
请各位前辈帮忙解决文档布局图中目次反蓝显示随主动翻页跳转的题目。
解答:
可以试下:
- Option Explicit
- Dim myByte As Byte
- Sub myStart()
- If Selection.Paragraphs(1).Range.IsEqual(ActiveDocument.Content.Paragraphs.Last.Range) = True Then
- myByte = 100
- Else
- myByte = 10
- End If
- Application.OnTime Now + TimeValue("00:00:05"), "Do_it"
- Application.ScreenUpdating = False
- ActiveDocument.ActiveWindow.DocumentMap = False
- ActiveDocument.ActiveWindow.DocumentMap = True
- Application.ScreenUpdating = True
- End Sub
- Sub Do_it()
- If myByte = 0 Then
- Selection.HomeKey wdStory
- myStart
- ElseIf myByte = 10 Then
- Selection.MoveDown Unit:=wdScreen, Count:=1
- myStart
- Else
- myByte = 0
- End If
- End Sub
- Sub myStop()
- myByte = 100
- End Sub
相关文章
同类最新