VBA字词:如何引用无节号的节?

时间:2018-06-28 08:35:07

标签: vba ms-word word-vba

我正在处理一个文档,我想在该文档上的一个特定部分设置保护。

我有6个部分,第5部分是应该保护的部分。

稍后,我想创建一个仅在第5节中起作用的宏,进入该宏的条件如下:

If ActiveDocument.Range(0, Selection.Sections(1).Range.End).Sections.Count = 5 Then ...

Else: MsgBox "Not in the right section"

End If

但是,如果用户在文档中插入一个部分,则第5部分将变为第6部分(总共7个部分),依此类推。

Sub TestSections()




Dim myDoc As Word.Document
Set myDoc = ActiveDocument

Dim rngSec1 As Word.Range
Dim rngSec2 As Word.Range
Dim rngSec3 As Word.Range
Dim rngSec4 As Word.Range
Dim rngSec5 As Word.Range



Set rngSec1 = myDoc.Sections(1).Range
Set rngSec2 = myDoc.Sections(2).Range
Set rngSec3 = myDoc.Sections(3).Range
Set rngSec4 = myDoc.Sections(4).Range
Set rngSec6 = myDoc.Sections(6).Range


rngSec1.Editors.Add wdEditorEveryone
rngSec2.Editors.Add wdEditorEveryone
rngSec3.Editors.Add wdEditorEveryone
rngSec4.Editors.Add wdEditorEveryone
rngSec6.Editors.Add wdEditorEveryone

myDoc.Protect wdAllowOnlyReading

End Sub

在这段代码中,我保护了整个文档,并允许访问除5以外的每个部分。

我的问题:即使不再是第5节,如何也能引用第5节?

谢谢

1 个答案:

答案 0 :(得分:1)

我设法通过在其开头(插入->书签)添加书签(选择将其命名为“ section5”)来标识我的部分

然后,每当我需要获取要使用的节的当前编号时,就运行此代码:

Public Sub GetBookmrkSection()

Dim bookmrk As Range
Dim bookmrk_section As String

Set bookmrk = ActiveDocument.Bookmarks("Section6").Range
bookmrk_section = CStr(bookmrk.Information(wdActiveEndSectionNumber))
MsgBox bookmrk_section
Set bookmrk = Nothing

End Sub