ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2168|回复: 3

[求助]这段保存文件的代码速度奇慢

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-6-28 08:43 | 显示全部楼层 |阅读模式

我在日常工作中为了方便文档管理,写了一段WORD VBA帮助同事自动存储WORD文档到临时文件中,并加上页眉为文档保存的路径,但速度奇慢,比同事自己保存还要慢3倍。请各位帮忙看一下我的VBA中有什么问题,谢谢了。

说明一下:Z盘是映射的一台文档共享服务PC的一个共享文件夹,通过WORD正常保存文档时速度正常,但使用这个宏时就比较慢,主要就是在查找未被使用的文件名时速度奇慢。

Sub 保存到临时目录()
Dim Openfilename$, Openfileyear$, Openfullpath$, i, IDfile$, m

'临时文件存放路径
Openfullpath = "Z:\" & Trim(Str(Year(Date))) & "\TEMP\"
'生成当前年度的ID文件名
IDfile = "Z:\★★★共享&常用&模板★★★\" & "LastID" & Trim(Str(Year(Date))) & ".TXT"

Set fs = Application.FileSearch
With fs
    .LookIn = "Z:\★★★共享&常用&模板★★★\"
    .filename = "LastID" & Trim(Str(Year(Date))) & ".TXT"
    If .Execute = 0 Then
       MsgBox "没有找到今年的临时文件ID文件!准备生成!"
       Open IDfile For Output As #1
       m = 1
       Print #1, Trim(Str(m))
       Close #1
       MsgBox "已经生成完毕!"
    End If
End With

'取上次写入的值
Open IDfile For Input As #1
Input #1, i
Close #1

'生成临时文件名
Openfilename = "ls" & Trim(Str(i)) & ".DOC"

stat.Show 0
stat.Caption = "已查找:" & Trim(Str(i)) & "个文件。"

With fs
    .LookIn = Openfullpath
    .filename = Openfilename

    Do
       If .Execute() = 0 Then
          stat.Hide
          MsgBox "找到了" & Openfilename & "未被使用!"

          '记录这次查找的最后序列号
          Open IDfile For Output As #1
          Print #1, Trim(Str(i + 1))
          Close #1    ' 关闭文件。
        
          Exit Do
       Else
          i = i + 1
          stat.Caption = "已查找:" & Trim(Str(i)) & "个文件。"
          Openfilename = "ls" & Trim(Str(i)) & ".DOC"
          '重新设置查找文件名,重新查找一次
          .filename = Openfilename
       End If
    Loop
End With
ActiveDocument.SaveAs filename:=Openfullpath & Openfilename
'插入路径
Call 插入路径
End Sub

TA的精华主题

TA的得分主题

发表于 2006-6-28 17:50 | 显示全部楼层

参考一下这个链接。

直接使用DIR检测是否存在指定文件名。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-29 08:28 | 显示全部楼层
呵呵,十分感谢你提供的思路,谢谢!我自己去查一下VBA的帮助,看看DIR命令,再次感谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-29 10:48 | 显示全部楼层
再次感谢守柔版主,问题完美解决,速度奇快
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 15:42 , Processed in 0.033208 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表