我有一个包含120个部分的Word文档。我编写了一个简单的直到代码循环,以应用pagesetup,如代码所示。遍历所有部分只需要2分钟多的时间,太长了。有没有更快的方法来解决这个问题?
Dim oSecRange As Word.Range
Dim iSecCounter As Long
iSecCounter = 0
Do
Set oSecRange = oDoc.Sections(iSecCounter + 1).Range
Application.StatusBar = "Adjusting HEADER & FOOTER distance & Page Margins - " &
Application.Round((iSecCounter / oDoc.Sections.Count) * 100, 0) & "% Completed."
oSecRange.PageSetup.HeaderDistance = Application.InchesToPoints(0.25)
oSecRange.PageSetup.FooterDistance = Application.InchesToPoints(0.25)
oSecRange.PageSetup.LeftMargin = Application.InchesToPoints(0.75)
oSecRange.PageSetup.RightMargin = Application.InchesToPoints(0.75)
oSecRange.PageSetup.TopMargin = Application.InchesToPoints(0.25)
iSecCounter = iSecCounter + 1
Loop Until iSecCounter = oDoc.Sections.Count
答案 0 :(得分:0)
如果您需要所有页面都相同并且不必考虑方向,那么下面的代码即可完成工作。
With ActiveDocument.StoryRanges(wdCommentsStory).PageSetup
.HeaderDistance = Application.InchesToPoints(0.25)
.FooterDistance = Application.InchesToPoints(0.25)
.LeftMargin = Application.InchesToPoints(0.75)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(0.25)
'.BottomMargin= Application.InchesToPoints(0.25) ?
End With
如果您有不同的页面要求并且也有不同的方向,则可能需要逐节进行操作。在这种情况下,请在开始之前关闭屏幕更新,然后在完成后将其打开。 (Application.ScreenUpdating = false / true)每次您更改页面格式参数(例如,原始代码中的每个部分5个重新格式化)时,这都会花很多时间来重新格式化您的文档。