0
В EXCEL я объединим несколько документов с использованием VBA. Моя работа потока:Слияние текстовых документов в VBA EXCEL (выпуск: обратный порядок)
- Открыть шаблон и удалить все существующий текст (только сохранить format_
- начать цикл путем копирования каждого слова документ комбинироваться (я скопировать из строки 13 каждого файла)
- вставить в объединенный файл
до сих пор большинство шагов хороши кроме того, что слитый файл в порядке отворотов, что означает, что последняя страница объединенного документа фактически является первым открыл документ. есть способ вставить текст в обычном порядке? Спасибо!
Set newDoc = objWord.Documents.Open(path to template)
'clear template text in this template
objWord.Selection.WholeStory
objWord.Selection.Delete
For i = 1 To NoOfFiles
Set objDoc = objWord.Documents.Open(Folderpath to output files)
' goto line 13
Set r = objDoc.Goto(what:=3, which:=wdGoToNext, Count:=13)
r.End = objDoc.Range.End
r.Copy
newDoc.Content.InsertBreak Type:=wdSectionBreakNextPage
newDoc.Range(newDoc.Content.Start, newDoc.Content.Start).Paste
End If
Next
Ваш диапазон, в который вы вставляете, является началом документа (newDoc.Content.Start). Возможно, попробуйте newDoc.Content.End? – leowyn
@leowyn, я попробовал 'newDoc.Range (newDoc.Content.End, newDoc.Content.Start) .Paste', но получил ошибку« значение вне диапазона » –
два параметра, переданные в Range, являются начальными и конечными положениями курсора. Если вы используете 'newDoc.Range (newDoc.Content.End, newDoc.Content.Start) .Paste', тогда вы пытаетесь создать диапазон, который возвращается назад от конца документа к началу его. Попробуйте 'newDoc.Range (newDoc.Content.End, newDoc.Content.End) .Paste' – leowyn