我正在处理一个文档,我想在该文档上的一个特定部分设置保护。
我有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节?
谢谢
答案 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