Я пишу макрос VB, чтобы выполнить некоторую обработку документов для моей работы. В строках текста выполняется поиск, и текст в квадратных скобках помещается в список (поле).
Проблема возникает, когда я хочу удалить все гиперссылки в документе, а затем создать новые (не обязательно в месте исходных гиперссылок).
Итак, проблема в том, как удалить существующие гиперссылки?
Моя текущая проблема заключается в том, что каждый раз, когда добавляется ссылка, количество гиперссылок увеличивается на единицу, но когда вы ее удаляете, количество НЕ уменьшается. (в результате у меня теперь есть документ с 32 ссылками - все пустые, кроме трех, которые я вставил сам - они не отображаются в документе)
В конце кода мои попытки удалить гиперссылки.
Private Sub FindLinksV3_Click()
ListOfLinks.Clear
ListOfLinks.AddItem Now
ListOfLinks.AddItem ("Test String 1")
ListOfLinks.AddItem ActiveDocument.FullName
SentenceCount = ActiveDocument.Sentences.Count
ListOfLinks.AddItem ("Sentence Count:" & SentenceCount)
counter = 0
For Each myobject In ActiveDocument.Sentences ' Iterate through each element.
ListOfLinks.AddItem myobject
counter = counter + 1
BracketStart = (InStr(1, myobject, "("))
If BracketStart > 0 Then
BracketStop = (InStr(1, myobject, ")"))
If BracketStop > 0 Then
ListOfLinks.AddItem Mid$(myobject, BracketStart + 1, BracketStop - BracketStart - 1)
ActiveDocument.Sentences(counter).Select
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
"http://testnolink/" & counter, ScreenTip:="" 'TextToDisplay:=""
End If
End If
Next
'ActiveDocument.Sentences(1).Select
'
'Selection.Range.Hyperlinks(1).Delete
ActiveDocument.Hyperlinks.Item(1).Delete
Debug.Print ActiveDocument.Hyperlinks.Count
End Sub