Ich habe Daten in der Registrierung unter Aktueller Benutzer, die ich in vordefinierte Lesezeichen in Word-Dokumenten hinzufügen möchte. Nun, die Sache ist, ich will genau das gleiche Makro in jedem einzelnen Word-Dokument und lasse das Makro den Schritt überspringen, wenn es das vordefinierte Lesezeichen nicht finden kann.Einfügen von Daten aus der Registrierung in vordefinierte Lesezeichen
Ich habe diesen Code bereits, wo ich ein Array der gesamten Daten, die ich in der Registrierung habe, vordefinieren muss. Das Makro speichert die Werte jedes Unterschlüssels aus der Registrierung in einer Zeichenfolge. Aber fügt den Wert nicht in das Lesezeichen ein, wenn das Lesezeichen nicht existiert. Nun, das ist sowieso die Idee.
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
Wenn ich einen Haltepunkt auf dem Boden Weiter setzen, kann ich sehen, dass es in der Tat die Lesezeichen findet, aber irgendwie fügt sie die Werte der einzelnen Registrierungsunterschlüssel, bis er die richtige findet. Und die ursprüngliche Idee ist auch, das Makro zu löschen, was auch immer Wörter in den Bookmkarks sind, wenn ich das Makro erneut ausführe, denn wenn die Daten in der Registrierung Updates erhalten, sollte das Makro es aufheben und es in das Dokument einfügen.
Kann jemand finden, was hier falsch sein könnte?