我在Word 2010中有一个简单的vba代码:
Sub IncreaseIndent()
For Each p In Selection.Paragraphs
p.LeftIndent = p.LeftIndent + InchesToPoints(0.25)
p.FirstLineIndent = InchesToPoints(-0.25)
Next
End Sub
它工作得很好,做我需要的,并且我将它与快捷键相关联。但我正试图找出它最后的一个小故障。当我使用它时,段落缩进,但它在文档中没有正确刷新。我必须滚动以便文本不在视图中,然后向后滚动。 (任何使Word重新渲染的操作都可行,例如切换到窗口位于Word之上的另一个程序,然后再返回。)之后,段落看起来应该如此。
我在想我错过了某种p.Refresh / Re-render / Recalc命令,但不知道那是什么。有人知道如何在vba代码中进行刷新吗?
谢谢, 桑德拉
答案 0 :(得分:0)
我无法复制您描述的内容,但有一种.ScreenRefresh
方法可以解决问题。
https://msdn.microsoft.com/en-us/library/office/ff193095(v=office.15).aspx
注意:在MSDN提供的示例代码中(以及稍后稍微修改过的代码),当我测试它时,切换ScreenUpdating
属性无效,始终似乎更新为当我运行它时,即使明确设置为False
Sub t()
Dim rngTemp As Range
Application.ScreenUpdating = False
Set rngTemp = ActiveDocument.Range(Start:=0, End:=0)
rngTemp.InsertBefore "new"
Application.ScreenRefresh
Application.ScreenUpdating = True
End Sub