Note: The other languages of the website are Google-translated. Back to English

如何將Word文檔批量轉換為txt文件?

本文討論的是如何將特定文件夾中的所有Word文檔批量轉換為Word中的單獨TXT文件。

使用VBA將Word文檔批量轉換為txt文件


使用VBA將Word文檔批量轉換為txt文件

下面的VBA代碼可以幫助將特定文件夾中的所有Word文檔立即轉換為txt文件。 請執行以下操作。

1.在Word文檔中,按 其他 + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 在裡面 Microsoft Visual Basic for Applications 窗口中,單擊 插入 > 模塊,然後將以下代碼複製到“模塊”窗口中。

VBA代碼:將Word文檔批量轉換為txt文件

Sub ConvertDocumentsToTxt()
'Updated by Extendoffice 20181123
    Dim xIndex As Long
    Dim xFolder As Variant
    Dim xFileStr As String
    Dim xFilePath As String
    Dim xDlg As FileDialog
    Dim xActPath As String
    Dim xDoc As Document
    Application.ScreenUpdating = False
    Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)
    If xDlg.Show <> -1 Then Exit Sub
    xFolder = xDlg.SelectedItems(1)
    xFileStr = Dir(xFolder & "\*.doc")
    xActPath = ActiveDocument.Path
    While xFileStr <> ""
        xFilePath = xFolder & "\" & xFileStr
        If xFilePath <> xActPath Then
            Set xDoc = Documents.Open(xFilePath, AddToRecentFiles:=False, Visible:=False)
            xIndex = InStrRev(xFilePath, ".")
            Debug.Print Left(xFilePath, xIndex - 1) & ".txt"
            xDoc.SaveAs Left(xFilePath, xIndex - 1) & ".txt", FileFormat:=wdFormatText, AddToRecentFiles:=False
            xDoc.Close True
        End If
        xFileStr = Dir()
    Wend
    Application.ScreenUpdating = True
End Sub

3。 按 F5 鍵來運行代碼。

4。 在裡面 瀏覽 窗口中,選擇包含要轉換為txt文件的Word文檔的文件夾,然後單擊 OK 按鈕。 看截圖:

然後,您可以看到所選文件夾中的所有文檔都立即轉換為txt文件。 看截圖:


推薦的Word生產力工具

 

Kutools For Word - 超過 100 Word 的高級功能, 節省您的 50% 時間

  • 複雜和重複的操作可以在幾秒鐘內完成一次處理。
  • 跨文件夾一次將多個圖像插入Word文檔。
  • 將文件夾中的多個Word文件合併並合併為所需順序。
  • 根據標題,分節符或其他條件將當前文檔拆分為單獨的文檔。
  • 在Doc和Docx之間,Docx和PDF之間轉換文件,用於常見轉換和選擇的工具集合等...
按評論排序
留言 (22)
5中的5評分 · 1評級
網站主持人對此評論進行了最小化
我是詩歌愛好者。 我需要將 700 多個單詞的作品轉換為 txt。 多虧了你的子程序,我很快就做到了。
謝謝
網站主持人對此評論進行了最小化
當我在 Mac 上使用最新的 Word 時,是否可以提供相同的代碼? 我收到運行時錯誤 5948 並調試指向此部分: Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)••••ˇˇˇˇ
網站主持人對此評論進行了最小化
謝謝! 這非常有幫助
網站主持人對此評論進行了最小化
您是如何工作的?
網站主持人對此評論進行了最小化
不為我工作,任何想法為什麼?
我是否需要在我要轉換的同一文件夾中的 Word 文檔或我開始的任何新 Word 文檔中執行此操作? - 嘗試了這兩個選項,但都沒有工作,但我也沒有收到任何錯誤消息
網站主持人對此評論進行了最小化
我正在使用 Windows 10 和 Microsoft Office 2016
網站主持人對此評論進行了最小化
將 xFileStr = Dir(xFolder & "\*.doc") 更改為 xFileStr = Dir(xFolder & "\*.docx") 因為我假設您有更新的 word 文件格式。
網站主持人對此評論進行了最小化
嗨,代碼有效,但最後給了我“運行時錯誤 91”,我的一些文件有對象。 知道如何解決這個問題嗎?
網站主持人對此評論進行了最小化
十分感謝! 像魅力一樣工作!
網站主持人對此評論進行了最小化
在一個充滿 .docx 文件的文件夾上快速而完美地工作。 我謝謝你/
網站主持人對此評論進行了最小化
該腳本對我很有用,但僅適用於一個文件夾。 有沒有辦法包含所有子文件夾?
網站主持人對此評論進行了最小化
謝謝你——當我想,“嘿,也許有人已經這樣做了?”時,我正打算自己編寫一些代碼。 你有,而且比我做的更優雅。 謝謝你的辛勤工作。
網站主持人對此評論進行了最小化
我使用上面的腳本批量轉換韓文文檔,但腳本不起作用。 當我厭倦了更改編碼時,有人可以幫我解決這個錯誤嗎?
網站主持人對此評論進行了最小化
我需要他們轉換為分隔的文本文件,這是否仍然可行。
網站主持人對此評論進行了最小化
那是一種享受! 謝謝!
5中的5評分
網站主持人對此評論進行了最小化
你好,謝謝你的這篇文章。 當我點擊“運行”時,我收到一條錯誤消息:“編譯錯誤:外部過程無效。” 這是我使用 doc 還是 docx 擴展名(可能不相關,但我都試過了。)請你幫忙嗎? 我不知道如何使用代碼....並且確實需要轉換大量文檔。 謝謝!
網站主持人對此評論進行了最小化
嗨杜爾加,
該代碼在我的情況下運行良好。
請確保模塊(代碼)窗口僅包含帖子中提供的 VBA 代碼。
網站主持人對此評論進行了最小化
嗨,這非常有效。 有沒有辦法選擇不同的 TXT 編碼格式(例如 UTF-8 而不是 Windows)?
網站主持人對此評論進行了最小化
嗨西蒙,
以下 VBA 代碼有助於將指定文件夾中的所有 Word 文檔轉換為 UTF-8 .txt 文件
Sub ConvertDocumentsToTxt()
'Updated by Extendoffice 20201031
    Dim xIndex As Long
    Dim xFolder As Variant
    Dim xFileStr As String
    Dim xFilePath As String
    Dim xDlg As FileDialog
    Dim xActPath As String
    Dim xDoc As Document
    Application.ScreenUpdating = False
    Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)
    If xDlg.Show <> -1 Then Exit Sub
    xFolder = xDlg.SelectedItems(1)
    xFileStr = Dir(xFolder & "\*.doc")
    xActPath = ActiveDocument.Path
    While xFileStr <> ""
        xFilePath = xFolder & "\" & xFileStr
        If xFilePath <> xActPath Then
            Set xDoc = Documents.Open(xFilePath, AddToRecentFiles:=False, Visible:=False)
            xIndex = InStrRev(xFilePath, ".")
            xDoc.SaveAs Left(xFilePath, xIndex - 1) & ".txt", FileFormat:=wdFormatText, AddToRecentFiles:=False, Encoding:=msoEncodingUTF8
            xDoc.Close True
        End If
        xFileStr = Dir()
    Wend
    Application.ScreenUpdating = True
End Sub
網站主持人對此評論進行了最小化
非常感謝
網站主持人對此評論進行了最小化
謝謝你! La conversion se fait très bien
網站主持人對此評論進行了最小化
Vielen Dank, das ist wirklich sehr hilfreich! Ich werde auf Deine Seite bei der nächsten Gelegenheit verweisen。
歡迎
烏利
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護