求VBA编程高手。。用vba loop循环打开一个文件夹里的word文档,文档页数不能全部加载,是什么问题?

用vba loop循环递归打开一个文件夹里的word文档,打开的文档只能显示前面一、二页,后面的几十页显示不了(可以手动向下拖右边的滑杆让页数全面全部,但不是我想要的,既然是程序不能用手参与),非要等到这个文件夹里的所有个word文档全部打开后(也就是Loop循环完了),每个文档后面的页数才全部显示,这是为什么呢?
下面是其中部分代码:
path = "D:\vba\test"
ChDir (path)
filename = Dir("D:\test\*.doc")
Do While filename <> ""
Documents.Open filename:=path & "\" & filename
filename = Dir
Loop
(就是在循环打开的期间,已经打开的word文档基本只能显示前2、3页,直到循环全部完成,word文档的所有页才一下子全部出来[每个word文档都有几十页])
财富值没有,能搞定的可能赏10块话费哈

第1个回答  2013-06-15
简单测试时,放置了4、5个文件,只是显示一个个打开,还没有显示页数,未发现你说的问题。

问题1:为何要看页数?全打开后既然会显示,在打开期间 你要做什么操作么?

2: 我们打开一个大的Word的时候,会有一定的时间,等待文件完全打开后 一些信息才能显示,建议在 循环中间加上一个 延时的代码,打开后等待 一定的时间 再去打开另一个,可能会解决上面的问题,但是全部文件打开的时间会较长,是否合适。追问

1、不显示或者只显示2页的话,一保存,几十页的文档一下子就变成2页的了。内容都丢了。
打开期间我要修改并保存。(只有页数全部显示,保存后的文档才是完整的)

2、延时也加了,不管加多少分钟,都不显示全部页数,非得等到loop循环完了(“保存”操作是在Loop结束前的),才全部显示啊。郁闷

如何用vba代码打开文件夹内的word文档?
'打开word文档,mydoc变量指定路径和文件名 worDoc.Activate'激活打开的文档 wordappl.Selection.WholeStory '全选文档 wordappl.Selection.Copy'复制选择内容到剪贴板 worDoc.Application.Quit'关闭word文档 Set WordApp = Nothing'释放对象变量的内存 Workbooks(1).Sheets(2).Activate '激活excel第一...

vba读取word有多少页vba获取word文档页数
要使用VBA读取Word文档的页数,可以借助Document对象中的BuiltInDocumentProperties属性来获取页面数。具体的步骤是先打开Word文档,然后通过VBA代码访问文档对象,使用BuiltInDocumentProperties("Number of Pages")属性来获取文档的页数。这个属性返回一个代表页数的整数值,可以直接输出或者存储在一个变量中供后续...

求助VBA代码运行的问题,获取word文档页数
建议使用下面方法,遍历子文件夹:Sub test002(folderspec) Dim fs, f, f1, sf, fc Dim mypath As String, fn As String Dim i As Long, lmyRow As Long On Error Resume Next Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(folderspec) ...

word vba 用循环批量打开和关闭word文档,怎么才能不在屏幕上刷新?_百 ...
打开的时候给个参数Visible: false 下面这段是C#的代码,VBA的应该类似 Document doc = WPS.Application.Documents.Open(wpsFilename, Visible : false)

...一个已打开的word,我在一个过程里打开了word文档,编辑后想在另一个...
建议把myworkbook 改为全局变量,在打开过程赋值后,后面的 Dim myworkbook As Word.DocumentSet myworkbook = Application.Documents("C:\\网络公共盘\\Normal\\C.docm")'上面这句执行不了啊这两句去掉,不再重新定义并赋值。直接使用即可。这里主要是你在程序内部打开的,操作起来还算便利。如果是在程序...

怎样用VB修改一个文件夹里所有WORD的字体
你可以改编一下。用法:打开VBA编辑器,复制下面的代码,运行。把你的word文档全放到D:\\test下,要么就改代码。Sub lengfengfly()Dim Adoc As String, PsDoc As Document, CurPath As String 'On Error Resume Next ChDrive "D"ChDir "D:\\test"Adoc = Dir("*.doc")Application.ScreenUpdating =...

求调整word文档行距的VBA代码
Sub LineSpacing26()Dim my_Doc As Stringmy_Doc = Dir("文件路径" & "\\" & "*.doc*")do while len(my_doc)<>0Documents.Open ("文件路径" & "\\" & my_Doc)Selection.WholeStorySelection.ParagraphFormat.LineSpacing = 26Documents(1).Closemy_doc=dirLoopEnd Sub ...

VBA如何设置路径,使文件夹移动时,仍能打开某一文档?
先获取excel自己所在的路径,然后打开word文档即可。pth=Thisworkbook.Path If right(pth,1)<> "\\"then pth= pth & "\\"Set odoc = docApp.Documents .Open(pth & "3-B02-01 在用压力容器全面 检验报告 _v1_0.doc")如果不在同一个路径,只要相对位置是固定的也可以使用类似方法来实现。

高手们,请问VBA里面怎么获取WORD文档里的目录所对应的内容呢?
你能获取到目录,那么对于每个Paragraph对象,可以访问.Range.Hyperlinks集合,对于第一个Hyperlink对象,可以执行它的Follow方法,这样就能跳转到对应的章节,然后在这个基础上读取文档内容就可以了。我不知道你说的“对应的内容”是指什么意思,估计你要做一些遍历和判断。

在word里vba中如何打开另一个word文档,并获取该文档表格里的某个单元...
Sub test() Dim doc As Document Set doc = Documents.Open("d:\\某文件.doc") '打开d盘根目录下名为 某文件.doc 的文档 MsgBox doc.Tables(1).Cell(2, 3).Range.Text '显示该文档第1个表格第2行第3列的单元格的文本End Sub ...

相似回答