接着之前讨论过的问题,还是doc、docx、txt文件的格式转换。
首先,我们先研究一下doc和docx之间的转换问题。
Doc格式是word2003之前版本(包括word2003)的储存格式,docx是word2007之后版本(包括word2007)的存储格式。
Word的全称是office word,你要是用金山的WPS office,那就没有必要看这篇文章了。
一般软件都是高版本能打开低版本,但是低版本就打不开高版本了,word也有这个问题,word2007能打开doc文件,但是word2003打不开docx文件。
如何才能把docx文件用word2003打开呢?
解决方法有好几个。
No1,找一台安装了word2007以上版本的(包括word2007)的电脑,用word2007打开docx文件,转存一个doc文件。还不如装一个word2007或者word2010呢。
No2,网上有好几个网址提供在线转换docx到doc格式的服务。
http://www.doc.investintech.com/
这个是一个,但不爽的是,界面是英文的,而且还需要先注册电子邮箱地址,转完的doc文件发送到电子邮箱里面。
还有一些小软件也可以转,就不一一介绍了。
这个方法不推荐,因为要求网络环境,而且会破坏文件的保密性。
No3,下载一个word2003的补丁,把这个补丁安装以后,word2003就可以打开docx文件了。
下载地址如下:
http://zhidao.baidu.com/link?url=2ycj6HQBQNxbjt7TEATmcG6yY1Keb32TEox54Q7DqP44S7mhPh1KyfswuWXMvIWJK_b69inAoBPCK5RfKpr-Fa
这三个方法里面,第三个方法算是最推荐的了。
但这个方法也要求你word版本不能太低,你要是用的是word98,我也没辙了,亲,做人不用这么怀旧,可以升级一下程序了!
上述内容不是批处理的内容,只是福利了一下关于doc和docx的转换。
下面进入批处理。
因为我是一个优秀的专业工程技术人员,不是搞文字的,也不是编代码的,word的宏代码,我有点短板,我自己编的那个宏倒是能运行,但一直是死循环,没完没了了,我估计是我的do loop语句用的有问题,所以,我只能借鉴一下其他人的了,它山之石可以攻玉,你别管我怎么解决的,我能解决就行。
我找到了几个程序,做了一些修正,并且会详细写一下怎么用,我虽然自己没有写出能用的,但至少能读懂人家写的,能知道怎么用,也能稍微动动手脚改成我想要的功能……
好吧,我再强调一下,我是一个能力出色的全才……
好不要脸。
不废话了,进入主题。
1.docx转doc
首先,批量的docx文件转成doc文件,我把代码稍作修改,调成docx文件转成doc文件的,代码如下,在破折号里面,怎么用详见“文档批量合并”一章,我就不复述了。
Alt+f11调出Microsoft Visual Basic for Applications窗口,右键“ThisDocument”选择“查看代码”,把破折号里面的内容复制进去,运行。
哦,我复述了一遍。
我把我修正好的代码放上来吧。
————————————————
Sub docxtodoc()
Dim myDialog As FileDialog, oFile As Variant
Set myDialog = Application.FileDialog(msoFileDialogFilePicker)
With myDialog
.Filters.Clear
.Filters.Add "感谢亲爱的郎郎吧!", "*.docx", 1
.AllowMultiSelect = True
If .Show = -1 Then
For Each oFile In .SelectedItems
With Documents.Open(oFile)
.SaveAs FileName:=Left(oFile, Len(oFile) - 5) & ".doc", FileFormat:=wdFormatDocument
.Close
End With
Next
End If
End With
End Sub
————————————————————
注意,其中(.SaveAs FileName:=Left(oFile, Len(oFile) - 5) & ".doc", FileFormat:=wdFormatDocument)这行代码原来的代码是(SaveAs FileName:=Replace(oFile, "docx", "doc"), FileFormat:=0),有编程基础的人,能看出来,后面代码其实是不严谨的,容易报错,因为文件保存拓展名理论上是不能用replace来修改的,因为我用的word2010,所以我很悲催的报错了,我也是吭哧瘪度调试查错了半天,才改成现在的样子的,所以说,不管是编程,还是调试,都是很费事儿的,所以,好多大型软件都是好多模块组合树状分布的。
用法很简单,就是f5运行之后,会跳出一个对话框,把你要转换成doc格式的docx文件全部选中,点击确定,等着就可以了。
但这个是另存的,所以说明原来的docx文件还会在那个文件夹里面,按类型排列一下,删除docx文件就可以,也可以用dat可执行文件删除,但也犯不着。
2.docx转txt
运行方法一样,我只放代码了。
——————————————
Sub docxtotxt()
Dim myDialog As FileDialog, oFile As Variant
Set myDialog = Application.FileDialog(msoFileDialogFilePicker)
With myDialog
.Filters.Clear
.Filters.Add "感谢亲爱的郎郎吧!", "*.docx", 1
.AllowMultiSelect = True
If .Show = -1 Then
For Each oFile In .SelectedItems
With Documents.Open(oFile)
.SaveAs FileName:=Left(oFile, Len(oFile) - 5) & ".txt", FileFormat:=wdFormatText
.Close
End With
Next
End If
End With
End Sub
——————————————
3.doc转txt
——————————————————
Sub doctotxt()
Dim myDialog As FileDialog, oFile As Variant
Set myDialog = Application.FileDialog(msoFileDialogFilePicker)
With myDialog
.Filters.Clear
.Filters.Add "感谢亲爱的郎郎吧!", "*.doc", 1
.AllowMultiSelect = True
If .Show = -1 Then
For Each oFile In .SelectedItems
With Documents.Open(oFile)
.SaveAs FileName:=Left(oFile, Len(oFile) - 4) & ".txt", FileFormat:=wdFormatText
.Close
End With
Next
End If
End With
End Sub
——————————————————
4.doc转docx
有人会这么转吗?
但还是上代码吧。
——————————————————
Sub doctodocx()
Dim myDialog As FileDialog, oFile As Variant
Set myDialog = Application.FileDialog(msoFileDialogFilePicker)
With myDialog
.Filters.Clear
.Filters.Add "感谢亲爱的郎郎吧!", "*.doc", 1
.AllowMultiSelect = True
If .Show = -1 Then
For Each oFile In .SelectedItems
With Documents.Open(oFile)
.SaveAs FileName:=Left(oFile, Len(oFile) - 4) & ".docx", FileFormat:=wdFormatXMLDocument
.Close
End With
Next
End If
End With
End Sub
——————————————————
好无聊。
我数数又数不明白了,应该到5了吧?
5.txt转doc
告诉大家一个小秘密哦,因为txt是纯文本格式,而且是windows系统自带的工具,所以你只要把txt文件的后缀名改成doc,就成为了doc文件啦!
但是不要尝试把doc的后缀改成txt,那样就是乱码了。
找一个最简单的方法,就是上文提到过的cmd方法。
在你要改成doc文件的文件夹里面新建一个文本文档,“郎郎好棒啊.txt”,把下面的内容复制进去,保存,把文本文档改成“郎郎好棒啊.cmd”,运行这个cmd文件,文件夹里面的txt文件就被改成了doc文件了。
————————
@echo off
ren *.txt *.doc
echo ok &pause>nul
————————
6.txt转docx
如上,代码如下。
————————
@echo off
ren *.txt *.docx
echo ok &pause>nul
————————
Ok!大功告成了!
哎呀!累死我了。。。。。
以后有时间,我再普及一些简单实用的dos命令吧!
截图、调试、写教程,挺辛苦的,但毕竟是技巧,不需要灵感,有得有失,有利有弊吧,我现在都不知道我自己擅长什么了,我真的挺全才的,哪方面都可以,都算不错,但问题是,还真没有某一方面可以算得上惊天地、泣鬼神,前无古人,后无来者。
这样,好像也不是特别好。
哎呀,累死了!