나는 여러개의 단어 파일 (~ 5000)을 다른 헤더와 함께 가지고 있는데, 매크로로 읽은 다음이 여러 단어 문서를 폴더에 하나의 문서로 병합한다. 여기WORD 파일을 다른 헤더로 .txt로 변환하는 방법은 무엇입니까?
관련 코드 : 나는이 .txt로 파일을 저장하려고 할 때 작동되지만,
Sub MergeDocs()
Dim rng As Range
Dim MainDoc As Document
Dim strFile As String, strFolder As String
Dim Count As Long
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Pick folder"
.AllowMultiSelect = False
If .Show Then
strFolder = .SelectedItems(1) & Application.PathSeparator
Else
Exit Sub
End If
End With
Set MainDoc = Documents.Add
strFile = Dir$(strFolder & "*.doc") ' can change to .docx
Count = 0
Do Until strFile = ""
Count = Count + 1
Set rng = MainDoc.Range
With rng
.Collapse wdCollapseEnd
If Count > 1 Then
.InsertBreak wdSectionBreakNextPage
.End = MainDoc.Range.End
.Collapse wdCollapseEnd
End If
.InsertFile strFolder & strFile
End With
strFile = Dir$()
Loop
MsgBox ("Files are merged")
lbl_Exit:
Exit Sub
End Sub
, 헤더 + 바닥 글이에게 내가이 헤더를 저장할 수있는 한 어떤 방법을 lose..is .txt 파일에 너무 일부?
EDIT (. 내가 쓴 모든 문서에 다른 헤더를 가지고있다) :
Sub MergeDocs()
Dim rng As Range
Dim MainDoc As Document
Dim strFile As String, strFolder As String
Dim Count As Long
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Pick folder"
.AllowMultiSelect = False
If .Show Then
strFolder = .SelectedItems(1) & Application.PathSeparator
Else
Exit Sub
End If
End With
Set MainDoc = Documents.Add
strFile = Dir$(strFolder & "*.doc") ' can change to .docx
Count = 0
Dim doc As Document
Dim head As String, foot As String
Do Until strFile = ""
Set doc = Documents.Open(strFile)
head = doc.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text
foot = doc.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text
doc.Close False
Count = Count + 1
Set rng = MainDoc.Range
With rng
.Collapse wdCollapseEnd
If Count > 1 Then
.InsertBreak wdSectionBreakNextPage
.End = MainDoc.Range.End
.Collapse wdCollapseEnd
End If
.InsertAfter head
.InsertParagraphAfter
.InsertFile strFolder & strFile
.InsertAfter foot
End With
strFile = Dir$()
Loop
MsgBox ("Files are merged")
lbl_Exit:
Exit Sub
End Sub
지금까지 주 문서에 추가하기 전에 파일을 열지 마십시오. 너는 이것을해야 할 것이다. 그런 다음 머리글/바닥 글이 하나만 있다고 가정하면 머리글과 바닥 글을 다음과 같이 변수로 읽을 수 있습니다. head = doc.Sections (1) .Headers (wdHeaderFooterPrimary) .Range.text' 및'foot = ActiveDocument.Sections (1)) .Footers (wdHeaderFooterPrimary) .Range.text' 그리고'.InsertFile' 다음에이 텍스트를 각각 삽입하십시오. 그게 네가 필요한거야? – LocEngineer
예,이 논리가 필요합니다! 왜냐하면 헤더 부분에서 예를 들어 필요한 부분을 가지고 있기 때문에 모든 단어 문서에서 다른 부분이 있습니다. 코드를 어떻게보고 있습니까? 답변을 쓸 수 있습니까? 그리고 나는 그것을 시도하고 받아 들일 수 있습니다! – Harley