2017-02-16 38 views
0

Итак, я пытаюсь создать условное выпадающее меню в Word. Я использовал поле формы выпадающего списка Legacy с несколькими вариантами.Вставить/заменить строку в существующем текстовом поле в Word (VBA)

Что я хочу сделать, когда один из параметров выбран из раскрывающегося списка (и тогда, я думаю, вам нужно Tab, чтобы ввести его ...), поле Legacy Text Form ниже, которое имеет простой текст по умолчанию , следует заполнить новой строкой из оператора case.

Вещи, которые я уже сделал/начала работать:

  • выпадающие работают, а на выходе она запускает макрос
  • саз выписан
  • результата случая утверждение в переменном (строковом типе), давайте назовем это STRINGVAR
  • может потянуть текст в текстовом поле (в тексте по умолчанию) с ActiveDocument.FormFields («TextBox»). Результат

Однако я выясняю, как заменить текст по умолчанию в уже существующем текстовом поле с текстом строковой переменной case.

Я попытался ActiveDocument.FormFields ("TextBox"). Результат = STRINGVAR

но ничего внутри текстовое поле не меняется. Текст по умолчанию все еще существует.

ответ

0

Так что я могу ответить на свой вопрос после размышления и удара с моментом «о, дух».

У меня был незащищенный документ (ActiveDocument.Unprotect Пароль: = "") для того, чтобы сделать это:

ActiveDocument.Content.InsertAfter Текст: = ("Это мой текст")

потому что Мне было интересно, хватаюсь ли я за правильную строку.

Оказывается,

ActiveDocument.FormFields ("TextBox"). Результат = STRINGVAR

ДЕЛАЕТ работу. НО файл должен быть защищен (заполнение форм), чтобы он заменил строку в поле текстовой формы. В противном случае ничего не появляется, даже если результат действительно был обновлен. Представьте, что.

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