您的位置:程序门 -> vb -> vba



vb 递归读取我word文件内容


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


vb 递归读取我word文件内容
发表于:2007-06-27 23:18:17 楼主
假设某文件夹下包含若干层次的子文件夹,自文件夹下都有word文件,文件数也不一定,我写了代码,但在递归时不是提示错误就是读取文件内容不对,我的代码如下:
sub   a(byval   str   as   string)
dim   filename   as   string
dim   app   as   word.application
set   app   =   new   word.application
dim   myfso   as   new   filesystemobject
dim   myfolder   as   folder
dim   sfolder   as   folder
dim   myfile   as   file
set   myfolder   =   myfso.getfolder(str)
filename   =   myfile.name
dim   myrange1   as   word.range
app.visible   =   true
app.documents.open   str   +   filename
msgbox   str   +   filename
set   myrange1   =   activedocument.range(start:=0,   end:=activedocument.words(1).end)
dim   stra   as   string
stra   =   myrange1.text
msgbox   stra
for   each   sfolder   in   myfolder.subfolders
    dim   str1   as   string
    str1   =   str   +   sfolder.name   +   "\ "
    a   (str1)
    next
app.quit
set   app   =   nothing
end   sub
这里我是假设一个文件夹中只含一个文件的情况
提示错误在set   myrange1   =   activedocument.range(start:=0,   end:=activedocument.words(1).end)   ,提示实时错误462
远程服务器不存在或不能使用,要不没有错误提示,读取的子文件夹的内容是跟文件夹中文件的前两个字符?   应该怎么解决?
发表于:2007-06-28 21:05:041楼 得分:0
我知道问题出在activedocument,在递归时activedocument没有改变,还是父文件夹的文件,怎么使activedocument改变呢
发表于:2007-06-28 22:40:552楼 得分:0
我找到了原因,程序建立的对象没有被撤销,所以
应该对错误进行捕捉,并在里面里面先对woed对象进行关闭
然后,接着在打开,但我用activedocument.close不行,应该怎么做呢
发表于:2007-06-28 23:00:193楼 得分:0
其实就相当于我调用了同一程序段两次以上出现实时错误462远程服务器不存在或不能使用,这个问题怎么解决,如何完全关闭上一次word进程或对象


快速检索

最新资讯
热门点击