【发布时间】:2017-11-14 17:33:19
【问题描述】:
我一直在使用此代码在我的 word doc 中的所有标题加粗下划线:
Sub Underline_Headers()
Dim p As Paragraph
For Each p In ActiveDocument.Paragraphs
If Len(p.Range.Text) < 70 Then
p.Range.Font.Underline = True
p.Range.Font.Bold = True
End If
Next p
End Sub
这很有效 - 只要每个标题的长度少于 70 个字符,并且它下面的段落是 70 个或更多字符。
但是很多时候表头可以超过70个字符,而表头下的段落可以少于70个字符。
但是,标题永远不会以任何标点符号结尾,例如“.”。但它们下面的段落总是这样。
我正在尝试修复上面的代码以查找所有不以“。”结尾的段落。然后加粗下划线。也就是说,我想改变规则。
我尝试了唯一对我有意义的事情。代码没有中断,但它最终在整个文档中加了粗体:
Sub Underline_Headers()
Dim p As Paragraph
For Each p In ActiveDocument.Paragraphs
If Right(p.Range.Text,1) <> "." Then
p.Range.Font.Underline = True
p.Range.Font.Bold = True
End If
Next p
End Sub
这应该会查找最后一个字符不是“.”的所有段落,如果这样做,它将隔离所有标题并仅在它们下加粗下划线,但显然这不起作用。
【问题讨论】: