如何在 VBA 中逐行构建一个新的 Word 文档而不闪屏
How to construct a new Word Doc in VBA line by line without screen flashes
以下代码可以逐行构建一个新的 Word 文档,但每次插入一行时屏幕都会闪烁。我基本上是在生成一个新文档,主要由我从活动文档中提取的文本片段的排序列表组成。我有一个程序(比下面的更复杂,但有同样的闪烁问题)产生了很好的结果,但我不想让别人癫痫发作或诱发癫痫发作。有没有一种方法可以自动插入非活动文档 window,或者只显示最终结果而不显示完成的每个步骤?
将整个列表作为一个长字符串变量插入,即使我可以使用换行符插入段落,也无法完全解决问题,因为我正在构建的实际文档有各种格式更改,自动化 Word 似乎是最方便的选择。
Sub HelloWorlds()
dim i As Long
Documents.Add DocumentType:=wdNewBlankDocument ' opens and puts cursor in a new doc
For i = 1 to 8
Selection.InsertAfter ("Hello World" & i)
Selection.InsertParagraphAfter
Next i
End Sub
Pupa Rebbe 的添加方案
Application.ScreenUpdating = False
在 "For" 循环工作之前,谢谢!光标在工作时会闪烁一点,但这与我遇到的烦人的频闪效果完全不同。
以下代码可以逐行构建一个新的 Word 文档,但每次插入一行时屏幕都会闪烁。我基本上是在生成一个新文档,主要由我从活动文档中提取的文本片段的排序列表组成。我有一个程序(比下面的更复杂,但有同样的闪烁问题)产生了很好的结果,但我不想让别人癫痫发作或诱发癫痫发作。有没有一种方法可以自动插入非活动文档 window,或者只显示最终结果而不显示完成的每个步骤?
将整个列表作为一个长字符串变量插入,即使我可以使用换行符插入段落,也无法完全解决问题,因为我正在构建的实际文档有各种格式更改,自动化 Word 似乎是最方便的选择。
Sub HelloWorlds()
dim i As Long
Documents.Add DocumentType:=wdNewBlankDocument ' opens and puts cursor in a new doc
For i = 1 to 8
Selection.InsertAfter ("Hello World" & i)
Selection.InsertParagraphAfter
Next i
End Sub
Pupa Rebbe 的添加方案
Application.ScreenUpdating = False
在 "For" 循环工作之前,谢谢!光标在工作时会闪烁一点,但这与我遇到的烦人的频闪效果完全不同。