我试图替换所有,然后只锁定替换单词,而不是全部。
例如:
句子:“我要上市” 发现:“市场” 替换:“学校”
然后,锁定“学校”一词。
Dim Datas(500) As String
Dim CariKata As String
Datas(1) = "Shop"
Datas(2) = "Office"
Selection.WholeStory
Selection.Editors.Add wdEditorEveryone
For h = 1 To 2
CariKata = Datas(h)
For i = 1 To CountWordPhrase(CariKata)
Selection.find.ClearFormatting
Selection.find.Replacement.ClearFormatting
With Selection.find
.Text = CariKata
.Replacement.Text = "school"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.MatchPhrase = True
End With
Selection.find.Execute
Selection.Editors(wdEditorEveryone).Delete
Next i
ActiveDocument.Protect Password:="123", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
Next h
End Sub
Function CountWordPhrase(ByVal KataDicari As String)
Dim Response, ExitResponse
Dim y As Integer
On Error Resume Next
With ActiveDocument.Content.find
Do While .Execute(FindText:=KataDicari, Forward:=True, Format:=True, _
MatchWholeWord:=True) = True
' Display message in Word's Status Bar.
StatusBar = "Word is counting the occurrences of the text " & _
Chr$(34) & x & Chr$(34) & "."
y = y + 1
Loop
End With
结束功能
此脚本已成功查找并锁定,但无法查找,替换和锁定。
如何查找,替换和锁定?
答案 0 :(得分:0)
保护Word中的少量文本可能很棘手。 2010年,您有两个基本选择:
使用"只读"保护。这使您可以锁定文档,将某些区域指定为可供选定人员编辑(或者#34; Everyone")。您将在“开发人员”选项卡“限制编辑”按钮中找到显示任务窗格的基本功能。您选择并将整个文档标记为可编辑,然后将您更改的范围设置为受保护。
使用内容控件,设置两个"锁定"复选框。由于我在您的代码中看到了ContentControls的一行,因此我假设您已经在某种程度上熟悉它们。这种方法的优点是您不需要不断更改文档的保护级别。
在任何一种情况下,您都不能再使用ReplaceAll。您需要将“查找”置于循环中,并在每次"点击"之后,执行插入/保护步骤,然后再次循环。 Internet上有很多代码示例用于循环使用Find。搜索:单词查找循环