接著之前討論過的問題,還是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命令吧!
截圖、調試、寫教程,挺辛苦的,但畢竟是技巧,不需要靈感,有得有失,有利有弊吧,我現在都不知道我自己擅長什么了,我真的挺全才的,哪方面都可以,都算不錯,但問題是,還真沒有某一方面可以算得上驚天地、泣鬼神,前無古人,后無來者。
這樣,好像也不是特別好。
哎呀,累死了!