Füllen von Tabellenzellen mit einem Makro (Microsoft Word)
Während Sie mit Tabellen in Word arbeiten, möchten Sie möglicherweise die verschiedenen Zellen in einer Tabelle mit einem festgelegten Wert füllen. Beispielsweise möchten Sie möglicherweise etwas in die Zwischenablage kopieren und dann den Inhalt der Zwischenablage in jede Zelle in einer Tabelle einfügen. Das folgende Makro erledigt den Trick:
Sub PasteToCells() Dim TargetRange As Range Dim oTargCell As Cell If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells oTargCell.Range.Paste Next oTargCell TargetRange.Select End Sub
Das Makro überprüft zunächst, ob die Auswahl einige Zellen enthält. Wenn nicht, wird der Benutzer informiert und das Makro wird beendet.
Anschließend wird die Auswahl in einer Variablen gespeichert, so dass sie am Ende des Makros (erneut) ausgewählt werden kann. Ohne diesen Code würde das Makro die Einfügemarke in der ersten Zelle der ursprünglichen Auswahl reduziert lassen.
Das eigentliche Fleisch des Makros befindet sich in der For … Next-Schleife. Es durchläuft die Zellen in der Auswahl und ersetzt alles, was vorhanden ist, durch den Inhalt der Zwischenablage. Schließlich wird die ursprüngliche Auswahl erneut ausgewählt und das Makro endet.
Sie haben wahrscheinlich bemerkt, dass das Makro auch eine On Error-Anweisung enthält. Diese Anweisung weist Word grundsätzlich an, alle Fehler zu ignorieren und mit der nächsten Anweisung fortzufahren. Zu den Fehlern, die ausgelöst werden können, gehören das Ausführen des Makros mit nichts in der Zwischenablage oder der Versuch, eine Tabelle in eine Tabellenzelle einzufügen. Word erledigt keine der beiden Aufgaben, versucht es jedoch weiter, bis alle Zellen in der Auswahl erledigt sind.
Sie sollten beachten, dass dieses Makro alles, was sich in den ausgewählten Zellen befindet, durch den Inhalt der Zwischenablage ersetzt. was vorher in den Zellen war, geht verloren. Wenn Sie stattdessen Informationen am Anfang der Zellen hinzufügen möchten, ohne den vorhandenen Inhalt der Zelle zu stören, können Sie dieses leicht modifizierte Makro verwenden:
Sub PasteToCellsStart() Dim TargetRange As Range Dim oTargCell As Cell Dim PasteRange As Range If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells Set PasteRange = oTargCell.Range PasteRange.Collapse wdCollapseStart PasteRange.Paste Next oTargCell TargetRange.Select End Sub
Eine letzte Änderung wäre, ein Makro zu erstellen, das bis zum Ende der Zellen eingefügt wird. Sie könnten denken, dass Sie wdCollapseStart im obigen Makro durch wdCollapseEnd ersetzen könnten, aber das funktioniert in Tabellen nicht richtig. Stattdessen müssen Sie die For … Next-Schleife im obigen Makro ersetzen. Das folgende Beispiel zeigt eine geänderte Version des Makros.
Sub PasteToCellsEnd() Dim TargetRange As Range Dim oTargCell As Cell Dim PasteRange As Range If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells Set PasteRange = oTargCell.Range.Characters.Last PasteRange.Collapse wdCollapseStart PasteRange.Paste Next oTargCell TargetRange.Select End Sub
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (1508) gilt für Microsoft Word 97, 2000, 2002 und 2003. Sie finden eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Word (Word 2007) und später) hier: