Я не могу вставить текст прямо в закладку через VBA - PullRequest
0 голосов
/ 22 мая 2019

'Попытка вставить текст непосредственно в закладку через VBA

'много чего перепробовал, но ничего не получалось.

'Может кто-нибудь указать, где я понимаю это неправильно?

Sub AddBookMark()

Dim BMName As String
Dim Contents As String

sText = "BM1"
Contents = "Testing"

With ActiveDocument.Bookmarks
 .Add Range.Text:=Contents
 .Add Name:=BMName
 .DefaultSorting = wdSortByName
 .ShowHidden = False
End With
End Sub

'Ошибка компиляции: синтаксическая ошибка

1 Ответ

0 голосов
/ 22 мая 2019

Нельзя добавить закладку к тексту, которого еще нет в документе. Другими словами, вы должны сначала выбрать текст, который вы хотите заключить в закладку. Если текст не существует, вы должны вставить текст, а затем выбрать его и, наконец, вставить необходимую закладку, чтобы окружить его.

Если бы вы открыли VBE, редактор Visual Basic и посмотрели на свой код, вы бы увидели оператор Add Range.Text:=Contents в красном, который вызывал синтаксическую ошибку, потому что в методе Bookmarks.Add таких свойств нет.

Даже с исправленным методом Bookmarks.Add ваш код все равно не будет работать, поскольку строковой переменной BMName никогда не присваивается значение, а имя BookMark не может быть пустым.

Ниже приведен код пересмотра вашей программы, который вы должны изучить:

Sub AddBookMarkRevised()

Dim BMName As String
Dim Contents As String
Dim rng As Range

BMName = "BM1"
Contents = "Testing"

Set rng = Selection.Range
rng.Text = Contents

With ActiveDocument.Bookmarks
 .Add BMName, rng
 .DefaultSorting = wdSortByName
 .ShowHidden = False
End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...