VB.NET : Вставка текста сразу после конца абзаца

#vb.net #ms-word #office-interop

#vb.net #ms-word #office-взаимодействие

Вопрос:

Моя цель — создать документ Word, в котором каждая буква имеет разные шрифты. Шрифты будут выбраны случайным образом. Код кажется работающим, но единственная проблема в том, что я не могу добавить буквы сразу после предыдущей строки. Он продолжает создавать новый абзац для каждой буквы.

 wp = wd.Content.Paragraphs.Add
wp.selection.Font.Name = font
wp.selection.TypeText = letter
  

Вот результат

Изображение 1

Изображение 2

Ответ №1:

Вероятно, вы захотите использовать selection свойство поверх Range .

Попробуйте заменить

 wp.Range.Font.Name = font
wp.Range.Text = letter
  

с помощью

 wp.Selection.font.Name = font
wp.Selection.TypeText letter
  

Selection будет текущее местоположение курсора.

Я не совсем уверен в ваших намерениях с wp.Range.InsertParagraphAfter() , но я не считаю, что это необходимо для For Each . . . Next цикла.

Комментарии:

1. Похоже, что выделение не является элементом абзаца. Возможно, я что-то упускаю

2. Ах да, ваше wp объявление объекта было неясным. Замените wp на объект приложения. Хотя теперь это имеет больше смысла, поскольку Range() также не является членом приложения.

3. Прошу прощения. Я на самом деле не понимаю. Я отредактировал сценарий из основного вопроса. Это может помочь мне понять больше

4. Хорошо, спасибо. Итак, измените wp. на wa. И откуда paragraph.add взялось? Удалите и эту строку. По крайней мере, поместите его перед своим циклом.