ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 循环遍历文件夹_doc2txt & txt2doc(宏)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-8-18 20:48 | 显示全部楼层 |阅读模式
本帖最后由 413191246se 于 2015-8-18 21:51 编辑

* 功能:将 Word2003 文档(*.doc)转换为文本文档(*.txt)。doc2txt=doc to txt。或:将文本文档(*.txt)转换为 Word2003 文档(*.doc)。txt2doc=txt 2 doc。
* 当转换有密码的 Word 文档时,记得密码就输入密码,不记得就打《确定》或《取消》均可,程序会继续。
* 注意:在进行转换时,一次不要太多,建议不要超过 300/400 个文件,否则,Word 可能会崩溃(崩溃的原因是遇到了引起崩溃的文件,如果没有遇到引起崩溃的文件,可能理论上无限)。
* 注意:在进行转换时,不要进行键盘/鼠标操作,请耐心等待,不想等待可按 Ctrl + PauseBreak 键中止程序。
* 循环遍历文件夹_doc2txt & txt2doc(宏)代码:
  1. Sub 循环遍历文件夹_doc2txt_txt2doc()
  2.     On Error Resume Next
  3.     Dim fd As FileDialog, i As Long, doc As Document, p As String, t As Long
  4.     Set fd = Application.FileDialog(msoFileDialogFolderPicker)
  5.     If fd.Show = -1 Then p = fd.SelectedItems(1) Else Exit Sub
  6.     Set fd = Nothing
  7.     If MsgBox("是否将 Word 文档(*.doc)转换为文本文档(*.txt)?(否则,将文本文档(*.txt)转换为 Word 文档(*.doc))", vbYesNo + vbExclamation, "循环遍历文件夹_doc2txt & txt2doc") = vbYes Then t = 0 Else t = 1
  8.     If MsgBox("是否转换文件夹 " & p & " ?", vbYesNo + vbExclamation, "循环遍历文件夹_doc2txt & txt2doc") = vbNo Then Exit Sub
  9.     With Application.FileSearch
  10.         .NewSearch
  11.         .LookIn = p
  12.         .SearchSubFolders = True
  13.         If t = 0 Then .FileName = "*.doc" Else .FileName = "*.txt"
  14.         If .Execute > 0 Then
  15.             For i = 1 To .FoundFiles.Count
  16.                 If t = 0 Then
  17.                     Set doc = Documents.Open(FileName:=.FoundFiles(i))
  18.                     doc.SaveAs FileName:=Left(doc.FullName, Len(doc.FullName) - 4) & ".txt", FileFormat:=wdFormatText
  19.                 Else
  20.                     Set doc = Documents.Open(FileName:=.FoundFiles(i), ConfirmConversions:=False)
  21.                     doc.SaveAs FileName:=Left(doc.FullName, Len(doc.FullName) - 4) & ".doc", FileFormat:=wdFormatDocument
  22.                 End If
  23.                 ActiveDocument.Close
  24.             Next i
  25.             MsgBox "转换完毕!共转换 " & .FoundFiles.Count & " 个文件!", vbOKOnly + vbExclamation, "循环遍历文件夹_doc2txt & txt2doc"
  26.         Else
  27.             MsgBox "未发现文件!", vbOKOnly + vbCritical, "循环遍历文件夹_doc2txt & txt2doc"
  28.         End If
  29.     End With
  30. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-8-18 22:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享!

TA的精华主题

TA的得分主题

发表于 2015-8-20 15:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

本帖最后由 13907933959 于 2015-8-20 17:04 编辑

师傅、这个好!徒弟下载收藏了!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-11 18:31 , Processed in 0.037824 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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