У меня есть данные в реестре под текущим пользователем, которые я хочу добавить в предопределенные закладки в документах Word. Дело в том, что я хочу, чтобы один и тот же макрос использовался в каждом отдельном документе Word, и этот макрос пропускает шаг, если не удается найти предопределенную закладку.
У меня уже есть этот код, где мне нужно предварительно определить массив всех данных, которые я получил в реестре. Макрос сохраняет значения каждого подключа из реестра в строку. Но не вставляет значение в закладку, если закладка не существует. Ну, это идея в любом случае.
Public Sub TemplateData()
Dim objShell
Dim strShell
Dim strDataArea
Dim Values() As String
Dim Fields
' Input the exact same key as in registry
Fields = Array("DEPARTMENT", "LETTER", "LNAME", "FNAME")
Set objShell = CreateObject("Wscript.Shell")
strDataArea = "HKCU\Templates\"
On Error Resume Next
For iTeller = 0 To UBound(Fields)
Dim sBookMarkName, sValue
sBookMarkName = "Bookmark" & Fields(iTeller)
sValue = objShell.RegRead(strDataArea & Fields(iTeller))
Selection.GoTo What:=wdGoToBookmark, Name:=sBookMarkName
Selection.Delete Unit:=wdCharacter, Count:=0
Selection.InsertAfter sValue
Next
On Error GoTo 0
End Sub
Если я поставлю точку останова внизу Далее, я вижу, что она действительно находит закладки, но каким-то образом вставляет значения каждого подраздела реестра, пока не найдет правильный. И первоначальная идея также состоит в том, чтобы макрос удалял все слова из bookmkarks, если я запустил макрос еще раз, поскольку, если данные в реестре обновляются, макрос должен их забрать и вставить в документ.
Кто-нибудь может найти, что здесь может быть не так?