将.txt文件的文件夹导入word文档

时间:2015-05-27 21:05:47

标签: vba ms-word automation word-vba

我在将.txt文件的文件夹导入excel时发现了很多,但在将.txt文件导入word时并不多。我正在尝试让我的宏打开特定文件夹中的所有.txt文件,并将它们导入到单个word文档中,每个.txt文件都有自己的页面。这是我到目前为止的代码(我在网上找到):

Sub AllFilesInFolder()
    Dim myFolder As String, myFile As String
    myFolder = Application.FileDialog(msoFileDialogFolderPicker)
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count > 0 Then
            myFolder = .SelectedItems(1)
        End If
    End With
    myFile = Dir(myFolder & "\*.txt") '
    Do While myFile <> ""
        Open myFolder & "\" & myFile For Input As #1
        'Copy & Paste Macro?
        myFile = Dir
    Loop
End Sub

2 个答案:

答案 0 :(得分:1)

使用命令提示符(cmd.exe)和以下命令将所有文本文件复制到单个文件中:

copy *.txt NewFile.txt

然后用word打开此文件并修改您想要查看文本的方式。

答案 1 :(得分:0)

这是让你入门的东西

Word 2010

编辑这应该允许您打开一个文档中的所有txt文件并保存

Option Explicit
Sub AllFilesInFolder()
    Dim myFolder    As String
    Dim myFile      As String
    Dim wdDoc       As Document
    Dim txtFiles    As Document

    Application.ScreenUpdating = False

    myFolder = openFolder

    If myFolder = "" Then Exit Sub

    myFile = Dir(myFolder & "\*.txt", vbNormal)
    Set wdDoc = ActiveDocument

    While myFile <> ""
        Set txtFiles = Documents.Open(FileName:=myFolder & "\" & myFile, AddToRecentFiles:=False, Visible:=False, ConfirmConversions:=False)
        wdDoc.Range.InsertAfter txtFiles.Range.Text & vbCr
        txtFiles.Close SaveChanges:=True
    myFile = Dir()
    Wend

    Set txtFiles = Nothing
    Set wdDoc = Nothing

    Application.ScreenUpdating = True
End Sub     
Function openFolder() As String

    Dim oFolder     As Object

    openFolder = ""

    Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0)
        If (Not oFolder Is Nothing) Then openFolder = oFolder.Items.Item.Path

    Set oFolder = Nothing
End Function