2015-05-27 2 views
1

Я нашел много на импортировании папки .txt-файлов в excel, но не так много при импорте .txt-файлов в слово. Я пытаюсь открыть мой макрос, чтобы открыть все .txt-файлы в определенной папке и импортировать их в один документ Word, причем каждый .txt-файл имеет свою собственную страницу. Это код, который я до сих пор (что я нашел в Интернете):папка импорта .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 
+0

Хорошая работа по поиску кода. Теперь расскажите нам, с какими проблемами вы сталкиваетесь с кодом, и что вы пытались изменить в нем, чтобы заставить его работать :) –

+1

Word имеет вставку ► Текст ► Объект ► Текст из команды «Файл», который лучше подходит для вставки текста из файла. Если вы записываете себя в один или два TXT-файла, остальное должно быть довольно очевидным. Вернись, если у тебя проблемы. – Jeeped

+0

@Deduplicator Re tags in Titles edit, кажется, никто не ценит такого рода вещи, но я делаю! – pnuts

ответ

0

здесь что-то, чтобы вы начали

Слово 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 
+1

Спасибо! Этот код открывает каждый текстовый файл как отдельный документ Word, но мне интересно, как его получить в один документ. Я добавил objDoc.SaveAs («P: \ ImportedDescriptions.doc») в качестве попытки сохранить документы, но только сохранил последний. Должен ли мой код сохранять каждый новый документ, а затем объединять его в один или можно напрямую импортировать текстовые файлы в один документ? Любой совет будет принят во внимание! –

+0

Будет ли это связано с созданием массива? –

+0

@ VincentBrown хорошо, я обновил тестовый код – 0m3r

-1

Скопируйте все текстовые файлы в один файл с помощью командной строки (cmd.exe) и выполните следующую команду:

copy *.txt NewFile.txt 

Затем откройте этот файл с помощью слова и изменить так, как вы хотите, чтобы увидеть текст.

Смежные вопросы