Acting on multiple Selection.Range objects in Microsoft Word
我试图用引号将页面上所有选定的文本括起来,但是当我运行代码时,它只会影响页面上的最后一个选择。我的代码还取消了所有选定的文本,并且该部分工作正常。我的代码如下:
1 2 3 4 | With Selection.Range Selection.Range.Bold = wdToggle .Text = Chr(34) & .Text & Chr(34) End With |
试试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Sub Demo() Application.ScreenUpdating = False Selection.Font.Shading.BackgroundPatternColor = wdColorAqua With ActiveDocument.Range With .Find .ClearFormatting .Replacement.ClearFormatting .Text ="" .Replacement.Text ="" .Font.Shading.BackgroundPatternColor = wdColorAqua .Format = True .Forward = True .Wrap = wdFindStop .Execute End With Do While .Find.Found .Font.Shading.BackgroundPatternColor = wdColorAutomatic If .Characters.Last = vbCr Then .End = .End - 1 .InsertBefore Chr(147) 'Chr(34) .InsertAfter Chr(148) 'Chr(34) .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True End Sub |
注意:我使用了智能引号,但如果您愿意,也可以使用直引号。
你可以这样做:https://stackoverflow.com/a/46106637/3451115
仅当您没有在整个文档中使用高亮显示时才有效。这个想法来自这里:https://stackoverflow.com/a/36413118/3451115
简而言之,您使用高亮作为临时标记来搜索和后期处理(为了更好的表达)。查找亮点可让您循环浏览所选内容。