Я регулярно работаю с большими документами Word.Я должен преобразовать все параграфы в таблицу.
Пример структуры исходного документа:
После преобразования (Вставка -> Таблица -> Преобразовать текст в таблицу) Word теряет информацию оотступы для случайных абзацев.Целевой документ:
Как видите, отступы для пунктов "c" и "d" исчезли.Не знаю почему, но это случается довольно часто.
Это должно быть точно так же, как в исходных документах:
Поиск и исправление ошибок для очень больших документов занимает несколько часов, поэтому я подумал, что можно исправить поврежденные отступы в целевом документе, взяв значения отступов из исходных абзацев.
Это моя первая попытка использования VBA, которую я началкак это:
Dim sourceDocument, targetDocument As Document
Dim myRange As Range
Set sourceDocument = ActiveDocument
Set targetDocument = Documents.Add(ActiveDocument.FullName)
Set myRange = targetDocument.Range(Start:=targetDocument.paragraphs(1).Range.Start, End:=targetDocument.paragraphs(targetDocument.paragraphs.Count).Range.End)
myRange.converttotable Separator:=wdSeparateByParagraphs
Dim i As Integer
For i = 1 To targetDocument.Tables(1).Range.Rows.Count
targetDocument.Tables(1).Range.Rows(i).Range.Cells(1).Range.paragraphs(1).LeftIndent = sourceDocument.paragraphs(i).LeftIndent
targetDocument.Tables(1).Range.Rows(i).Range.Cells(1).Range.paragraphs(1).FirstLineIndent = sourceDocument.paragraphs(i).FirstLineIndent
Next i
Сценарий работает, как и ожидалось, для простых абзацев, поскольку количество абзацев соответствует количеству строк в целевой таблице.Но в случае таблиц, существующих в исходном документе, это становится грязным.В таблицах количество абзацев удваивается.
Исходные таблицы вложены в одну целевую ячейку, что нормально, проблем с ними нет, и их не нужно исправлять.
Поэтому мой вопрос заключается в том, как сопоставить исходные абзацы с целевыми абзацами в таблицах (исключая исходные таблицы и целевые вложенные таблицы)?
Или, может быть, существует другой способ преобразования абзацев в таблицу с правильнымотступы