2009-11-23 3 views
0

Я собираю шаблон в Word, используя форму для заполнения пользователем, чтобы затем заполнить часть документа.Форматирование текста из текстового поля Mulitline в слове с VBA

Бит, который я сейчас застрял, находится в конце документа, в котором указаны cc.

Форма имеет многострочное текстовое поле, в которое пользователь помещает свои кубики, по одному на каждую строку.

Затем я хочу добавить в конец документа содержимое текстового поля, но в нужном формате. В частности, он должен выглядеть следующим образом:

cc: First CC contact 
     Second CC contact 
     so on and so forth 

Я попытался сделать это, используя 2 закладки, так что в настоящее время мой код:

' If 'CC' box has content, add it 
If doc_CC.TextLength > 0 Then 
    .Bookmarks("CC").Range.Text = vbCr + "cc:" 
    .Bookmarks("CCs").Range.Paragraphs.Indent 
    .Bookmarks("CCs").Range.Text = doc_CC + vbCr 
End If 

Однако, когда это выполняется, на странице он выглядит как:

 cc:  first contact 
     second contact 
     and so on 

Осознайте, что метод 2 закладка немного неаккуратно, но это казалось хорошей идеей, в то время - очевидно, что это не так! Проделали некоторые поиски способа сделать это с помощью Split, но я не добился значительного прогресса на этом пути - подозреваю, что я искал неправильную вещь.

Как это сделать, чтобы форматирование было желательным? Любая помощь приветствуется.

ответ

0

Попробуйте ввести символ табуляции? + Chr (9) или даже + vbTab может работать.

+0

Я попытался использовать символ табуляции вместо абзаца абзаца. Первая строка выглядит отлично, но последующие строки не имеют отступов (что было сюрпризом - оно не вело себя так же, как если бы вы вручную ввели текст в документ - если вы нажмете вкладку, а затем нажмите Enter, ваша следующая строка будет вставлена ​​в закладки. добавив вкладку в vba, это не так. Следующая строка по умолчанию вернется к левому краю. – Matt

+0

Почему бы не вставить вкладку для каждой строки? –

0

Обнаружили работу, которая, хотя и не отвечает на фактический вопрос о том, как это сделать, приводит к результату с тем же эффектом.

Использовали таблицу из 2 столбцов без строк вместо того, чтобы содержимое a1 было «cc:», а содержимое a2 было тем, что было введено в многострочное текстовое поле. Если в текстовом поле ничего нет, таблица удаляется.

Я буду следить за этим вопросом, хотя, если у кого-то есть правильный ответ, я могу отметить его соответствующим образом.

0

Еще одна возможность - форматировать абзац cc с помощью висячего отступа (например, используется для пули или нумерации). Используйте символ новой строки - Chr (11) - вместо vbcr, чтобы отделить каждую запись. Текст должен совпадать, затем ...

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