为了强化一些Word 2010样式规范,我在下面编写了VBA宏,这些规范在我的报告创作过程中倾向于解开。宏编译没有错误,但是当我在一个测试报告上运行它时,所有的格式化,但样式名称分配已被删除,根本没有任何反应。Word VBA脚本编译时没有错误但不起作用
Sub ntsReportFormatting()
Dim ntsReportDoc As Word.Document
Dim ntsNormal As Style
Dim ntsTOC1 As Style
Dim ntsTOC2 As Style
Dim ntsTOC3 As Style
Set ntsReportDoc = ActiveDocument
Set ntsNormal = ntsReportDoc.Styles("Normal")
With ntsNormal
.Font.Name = "Arial"
.Font.Size = 12
.ParagraphFormat.LeftIndent = 0.5
.ParagraphFormat.SpaceAfter = 0.6
End With
Set ntsTOC1 = ntsReportDoc.Styles("TOC 1")
With ntsTOC1
.Font.Name = "Arial"
.Font.Size = 12
.Font.Bold = True
.ParagraphFormat.LeftIndent = 0
.ParagraphFormat.SpaceBefore = 0.6
.ParagraphFormat.SpaceAfter = 0.6
End With
Set ntsTOC2 = ntsReportDoc.Styles("TOC 2")
With ntsTOC2
.Font.Name = "Arial"
.Font.Size = 12
.ParagraphFormat.LeftIndent = 0.17
.ParagraphFormat.SpaceBefore = 0.6
.ParagraphFormat.SpaceAfter = 0.6
.NoSpaceBetweenParagraphsOfSameStyle = True
End With
Set ntsTOC3 = ntsReportDoc.Styles("TOC 3")
With ntsTOC3
.Font.Name = "Arial"
.Font.Size = 12
.ParagraphFormat.LeftIndent = 0.33
.ParagraphFormat.SpaceBefore = 0.6
.ParagraphFormat.SpaceAfter = 0.6
.NoSpaceBetweenParagraphsOfSameStyle = True
End With
End Sub
我请教Lynda.com,MSDN文档,YouTube和谷歌,我一直无法找到一个明确的解决方案。
尝试用WdBuiltinStyle枚举值替换文字字符串值 - wdStyleNormal而不是“Normal”,例如 - 看看是否有所作为。您可以在VBA对象浏览器(F2)中找到该列表,或者如果您键入WdBuiltinStyle,智能感应应该提供它。 (但是请注意,我从内存中给你这个,所以我可能会拼写错误!) –
这可能是'样式'确实更新了,但它没有在文档文本中更新。除了TOC样式外,它也适用于我,我没有在我的样式集中分配。 –