vba - 在word中选择和格式化粘贴的文章
问题描述
我有很多场合必须从网页复制文章,粘贴到word并以某种方式格式化。我有这个代码来自动粘贴和格式化。但是,它只能工作一次,并且以后不会更改粘贴文章的字体。
Sub Macro1()
Dim artic As Word.Range
Set artic = Selection.Range
'keep bold word bold and avoid paragraphs to cluster into one
artic.PasteAndFormat (wdFormatOriginalFormatting)
'paste and select pasted article
artic.Select
artic.Font.Name = "Calibri"
artic.Font.Size = 10.5
artic.Font.Italic = False
artic.ParagraphFormat.Alignment = wdAlignParagraphLeft
End Sub
解决方案
如果您在 处设置断点,artic.Font.Name = "Calibri"
以便代码在artic.Select
您看到该Paste
方法不包含已粘贴的内容后停止。一般artic
会在粘贴内容的开头。
这意味着代码需要能够定位粘贴之前选择的位置之后的位置。它还取决于粘贴是否出现在文档的末尾。
以下示例代码在我的测试中对我有用。它使用两个Ranges
:一个用于粘贴内容的位置,另一个用于粘贴后的结束位置。
(回应对 Word 对象模型的更多说明):将Range
对象想象为一个选择,不同之处在于可以有多个 Range 对象,但只有一个 Selection。操作 aRange
时,考虑使用键盘缩小或扩展它通常会有所帮助。按向左或向右箭头键会将选择“折叠”到插入点;按住 Shift 并按下这些键将扩大/缩小选择;在单击文档中的其他位置时按住 Shift 也会这样做。考虑设置Range.Start
或Range.End
作为最后一个的等价物。范围的起点或终点被任意设置到文档中的另一个位置。
在 Range 下面代码中的第一个情况下,If
Range 被缩小/折叠到它的起点(想想左箭头键),然后向右移动一个字符(想想右箭头键)。这使它超出了新材料的粘贴位置,因此将粘贴点的末端延伸到此范围的起点将拾取两者之间的所有内容。
Sub TestPasteAndSelect()
Dim artic As Word.Range, rng As Word.Range
Dim bNotAtEnd As Boolean
Set artic = Selection.Range
Set rng = artic.Duplicate
rng.End = ActiveDocument.content.End
If rng.Characters.Count > 1 Then
'selection is not at end of document
rng.Collapse wdCollapseStart
rng.MoveStart wdCharacter, 1
bNotAtEnd = True
End If
'keep bold word bold and avoid paragraphs to cluster into one
artic.PasteAndFormat (wdFormatOriginalFormatting)
'paste and select pasted article
'artic.Select
'rng.Select
If bNotAtEnd Then
artic.End = rng.Start
Else
Set artic = rng.Duplicate
End If
artic.Font.Name = "Calibri"
artic.Font.Size = 10.5
artic.Font.Italic = False
artic.ParagraphFormat.Alignment = wdAlignParagraphLeft
End Sub
推荐阅读
- elasticsearch - cluster.routing.allocation.enable:似乎没有一个不起作用
- javascript - 在 React 组件中注册自定义事件
- html - 伪元素可以充当块元素而不重叠吗?
- api - LinkedIn API - 活动人口统计数据
- reactjs - platform.pause.subscribe 在 Ionic-React
- ios - 是否可以将应用程序的 iOS 设备设置重置为默认设置?
- android - Toast 怎么可能不再起作用?
- java - 在 hive 中执行命令时发生异常
- python - 百分比注释 Matplotlib 条并排
- react-native - @react-native-picker/picker 导致我的应用程序崩溃(android)