有一个现有的宏用于从文档中删除高亮格式:
Sub RemoveShading()
Selection.Font.Shading.Texture = wdTextureNone
Selection.Shading.BackgroundPatternColor = wdColorWhite
Selection.Shading.ForegroundPatternColor = wdColorWhite
End Sub
一切正常;当我选择所有文本并运行宏并跟踪文档中的更改时,我看到文档更新了以下更改:
格式化:图案清晰
和
格式化:图案:纯色 (100%)(白色)
在文档中以前存在突出显示的位置。
但是,现在,由于某些原因,我需要将其实现为 VB 脚本 (VBS)。当我应用我理解的完全相同的代码时:
' Open the current file
Set WordDoc = Word.Documents.Open(objFile.path)
' select and de-highlight the whole document
Word.Selection.WholeStory
Set WordText = Word.Selection
WordText.Font.Shading.Texture = wdTextureNone
WordText.Shading.BackgroundPatternColor = wdColorWhite
WordText.Shading.ForegroundPatternColor = wdColorWhite
' save in a new file to preserve original
newPath = objFSO.BuildPath(objFolder.path, objFSO.GetBaseName(objFile.path)&"_done.docx")
WordDoc.SaveAs(newPath)
WordDoc.Close
相反,整个文档都跟踪了如下更改:
格式:字体:默认(宋体)
格式:字体:非粗体
格式:字体:(默认)Arial,11pt
格式:字体:不粗体, 不是斜体
此外,整个文档现在所有文本的背景都是白色的,我只注意到这是因为我的机器上有一个深色的办公室主题(但不是我最初运行宏的那个)。然而,当我在我的机器上运行相同的宏时,背景保持空白而不是变白。
我在这里做错了什么?同样的代码怎么能对同一份文件做如此不同的事情呢?
我唯一能想到的是我做错了选择,因为这当然不存在于原始宏中,但这对我来说真的没有任何意义。
非常感谢!