VBA и Word: вырезание имени TextBox в соответствии с именем закладки - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть шаблон Word с множеством закладок, назначенных определенным местам в нем. Я создал пользовательскую форму с текстовыми полями для вставки текста в эти места / закладки.

Имена закладок и TextBoxes совпадают, но перед именем TextBoxes добавлено «TextBox_». Я также выяснил, как перебрать все текстовые поля (например) вкладки.

Теперь я хотел вырезать «TextBox_» из имени TextBoxes во время цикла и присвоить их значения закладкам. Я хотел сделать это, используя

Replace(ctl.Name, "TextBox_", "")

Но это не сработает. Может кто-нибудь сказать мне, что не так или помочь мне найти решение? Моя голова сейчас пуста ...

Заранее спасибо!

Пока мой код:

Private Sub apply_textboxes()

Dim ctl As Control

For Each ctl In Me.MultiTab1.Pages(Me.MultiTab1.Value).Controls

    If TypeName(ctl) = "TextBox" Then

        ActiveDocument.Bookmarks(Replace(ctl.Name, "TextBox_", "")) = ctl.Value

    End If

End Sub

(В моей пользовательской форме кнопка вызывает подпрограмму apply_textboxes.)

PS: По какой-то причине мой "Привет" с самого начала отключен. Так что "Привет всем" отсюда!

1 Ответ

0 голосов
/ 05 ноября 2018

Это должно работать:

ActiveDocument.Bookmarks(Replace(ctl.Name, "TextBox_", "")).Range.Text = ctl.Value

Тебе нужно это .Range.Text

...