查找问题(“?”之前的单词)正则表达式Microsoft Word


0

我有几本格式不正确的书,其中包含 质询 和答案。

我的工作是提出所有问题 资本化和大胆。 我正在使用MS Word来维护已经正确格式化的部分,因此将其移动到Notepad ++(例如)中并且不是一个选项。

我能想象的唯一可行解决方案是使用通配符在“?”之前找到所有单词。之后没有,然后用MS Word的替换工具中已有的格式化选项替换它们。

那么,有谁知道怎么样?

如何使用正则表达式/通配符查找问题(“?”之前的单词)?

Answers:


2

这是一个可以做你想要的宏。此宏假定您的问题在他们自己的段落中。如果它们可能散布在段落中,您可以使用while循环来逐个扩展选择字符,直到您点击大写字母,而不是仅扩展到整个段落。

Sub FormatQuestions() 'Finds everything that starts with a capital letter and ends with a question mark. Bolds it and puts it in all caps. 'Variable definitions Dim intTotalChars As Integer Dim intLoop As Integer Dim strTestChar As String Dim rngQuestionRange As Range Dim intCountQuestionMarks As Integer intTotalChars = ActiveDocument.Characters.Count For intLoop = 1 To intTotalChars strTestChar = ActiveDocument.Characters.Item(intLoop).Text If strTestChar = "?" Then intCountQuestionMarks = intCountQuestionMarks + 1 ActiveDocument.Characters.Item(intLoop).Select Selection.Expand wdParagraph Selection.Font.Bold = True Selection.Font.AllCaps = True End If Next intLoop End Sub

在此答案的先前版本中,我错误地注意到Word不允许您同时搜索段落标记和通配符。实际上确实如此,但你需要使用^ 13代替^ p。 (Microsoft的此页面列出了可以与通配符搜索一起使用的特殊字符: http://support.microsoft.com/kb/176776

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.