Ich möchte die folgende Funktionalität in meine MS Word-Berichte implementieren. Ich bin mir nicht sicher, wie/ob das möglich ist.
Als Referenz habe ich folgendes Bild im Sinn:
- Fügen Sie am Anfang eines Berichts eine Eingabetabelle mit allen Parametern ein.
- Richten Sie im gesamten Inhalt des Berichts Felder ein, die sich ändern, wenn sich die Eingaben in der Tabelle ändern.
- Beispiel: PARAMETER 1 wird auf 100 gesetzt, alle PARAMETER 1 im Bereich Inhalt werden dann automatisch auf 100 geändert.
Danke
Antwort1
Ich denke, Sie müssen diese Anforderung mit VBA implementieren.
VBA-Konsole öffnen: Klicken Sie auf „Alt + F11“
Hier ist das von der Bildschirmaufzeichnung generierte Makro, auf das Sie verweisen können:
Sub Macro5()
Selection.TypeText Text:="100"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "parameter1"
.Replacement.Text = "100"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.TypeText Text:="200"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "parameter2"
.Replacement.Text = "200"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.TypeText Text:="300"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "parameter3"
.Replacement.Text = "300"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sie müssen nur die folgenden beiden Parameter ändern, um den Wert der Variablen zu steuern:
TypText Text:="XX" Ersatz.Text = "XX"
Antwort2
Ich glaube, ich habe einen Weg gefunden, der Ihrem Wunsch ziemlich nahe kommt. Allerdings müssen Sie statt einer Tabelle im Dokument die erweiterten Eigenschaften eines Dokuments verwenden.
Dies sind die Schritte von Grund auf (für eine aktuelle Version von Word unter Windows):
- Neues Dokument erstellen
- Gehen Sie zu Datei ➡ Eigenschaften (oben rechts) ➡ Erweiterte Eigenschaften:
- Gehen Sie dann im angezeigten Fenster zur Registerkarte „Benutzerdefiniert“
- Hier können Sie benutzerdefinierte Dokumenteigenschaften erstellen, die Sie zum Speichern der Parameterwerte verwenden können, wie das folgende GIF zeigt (entschuldigen Sie den Tippfehler):
Gehen Sie nun zurück zum Dokument. Dort können SieFeldcodesum Dokumenteigenschaften anzuzeigen.
Am einfachsten ist es, an die Stelle zu gehen, an der der Parametertext erscheinen soll, CTRL+ zu drücken F9, einzugeben
DOCPROPERTY parameter_name \* MERGEFORMAT
und dann zu drücken, F9um alle Feldcodes im Dokument zu aktualisieren (einschließlich des soeben erstellten):
- Wiederholen Sie dies an jeder Stelle, an der die Parameter erscheinen sollen.
Um den Parameterwert im gesamten Dokument zu ändern, aktualisieren Sie ihn in den erweiterten Eigenschaften (Schritt 2-3), gehen Sie zurück zum Dokument und aktualisieren Sie alle Feldcodes, indem Sie drücken F9.
Hier ist eine kurze Demo: