Ну давайте поступим по другому в любом открытом документе прогоните код:
If Not (Bookmarks.Exists("file:///E:\\9.htm")) Then Beep
Получили ошибку № 424, конечно да!!!, почему???, потому что насколько я понимаю Вы спрашиваете закладку имя которой
просто не может существовать
То есть открыт чистый, новый документ, жмём
Альт Эф 11
Строку вставляем If Not (Bookmarks.Exists("file:///E:\\9.htm")) Then Beep
Прогоняем её нажимая Эф8 получаю ошибку № 424, если у Вас не так, то я тогда не знаю, что это такое
Спасибо за пояснения, но run time error #424 на строке
If Not (Bookmarks.Exists(bm)) Then никуда не делось
'переменной Bookmarks вроде же нет????
Повторяю переменной Bookmarks вроде же нет????, что не так, её нет
В коде слово Bookmarks встречается 1 раз в контексте If Not (Bookmarks.Exists(bm)) Then, если это переменная, то не для меня
Что далее??
Значение не определено
Тип не определено
Контекст НьюМакросФИО
Так я стано префессионал, не боитесь, что форум будет не нужен??
А можно прямо присваивать переменную того, на что ссылается ссылка, ставить условие если ссылка ссылается на закладку и т. д.
If (link.Type = wdFieldRef) Then ' если ссылка ссылается на закладку
' Здесь поместите код для исполнения
End If
Имею в документе одну закладку и одну ссылку на неё, далее код:
For Each link In ActiveDocument.Fields
Код_поля_ссылки = Trim$(link.Code.Text)'здесь вижу что всё правильно
If (link.Type = wdFieldRef) Then Beep'звука нет, так как в правую сторону компилятор не заходит, почему??????
Извините меня, но
В своём вопросе я спросил как среди всех ссылок в документе удалить ссылки, сам текст этой ссылки, который на экране удалять не нужно
If Not (Bookmarks.Exists(bm)) Then
link.Select
link.Delete
Selection.Range.Text = bm
End If
Я писал: А можно прямо присваивать переменную того, на что ссылается ссылка
Ответ я не понял вопроса.
Вопрос в том, всё в Вашем решении отталкивается от переменной=link.Code.Text
Потом имея её Вы от строки отбрасывает столько то знаков, чтобы не ставить условие Like "*D:\\Рабочая папка\\ГК РФ.doc*", а напрямую ="D:\\Рабочая папка\\ГК РФ.doc"
Вы говорите
Потому что тип ссылки отличный от wdFieldRef
Но строкой выше
Код_поля_ссылки = Trim$(link.Code.Text)'здесь я вижу что всё правильно, что ссылка ссылается на закладку, так как я сам прежде чем прогонять строки поставил эту закладку, поставил ссылку, то есть я знаю, что ссылка ссылается не на документ нет в переменной Код_поля_ссылки что то вроде D:\
Тогда надо значит надо указать в условии If (link.Type = wdFieldRef) Or ???????? Then Beep' чтот именно????
выделяю её сам лично ставлю ссылку и указываю, эту ссылку на место в документе, закладку "й"
Я и говорю тогда надо указать, как теперь я знаю
If (link.Type = 3) Or (link.Type = 88) Then Beep '
теперь подскажите
link.Type = 3 = wdFieldRef
link.Type = 88 = ?????
Я также спрашиваю в таком случае пишем
If (link.Type = 3) Or (link.Type = 88) Then На_что_ссылается_ссылка=???????
и я насколько понял без отбрасывания знаков от строки link.Code.Text не обойтись????
и я насколько понял без "разбора (parsing) строки" ссылки не обойтись???
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.