我正在使用自动化程序对Word文档进行大量更改,并运行VBA宏,其中检查文档的页数是否超过了某个特定值。 我使用ActiveDocument.Information(wdNumberOfPagesInDocument)
来获取页数,但该方法返回不正确的结果。 我认为这是因为Word尚未更新文档的分页以反映我所做的更改。
ActiveDocument.ComputeStatistics(wdStatisticPages)
也存在同样的问题。
我尝试添加调用ActiveDocument.Repaginate
,但没有任何作用。
我曾经通过在文档末尾添加一个段落,然后再将其删除来解决这个问题,但这种方法似乎已经不起作用(我最近从Word 2003迁移到Word 2010)。
有没有办法强制Word实际重新排版,或者等待重新排版完成?
ActiveDocument
之外,直接引用文档对象怎么样?(你可以将其存储在变量中) - VoitcusActiveWindow.Panes(1).Pages.Count
- Kazimierz JaworActiveDocument.Bookmarks("\EndOfDoc").Select
),然后调用.Information(wdNumberOfPagesInDocument)
。这对我在一个非常复杂的1,177页文档上运行良好,但需要很长时间。 - CuberChase