Gleichzeitiges Ersetzen in Arbeitsblättern und Kommentaren (Microsoft Excel)
Dorothys Schüler passen eine Arbeitsmappe zur Scheckbuchsimulation an und ersetzen den Standardnamen durch ihren eigenen. Zum Beispiel möchte sie, dass sie nach „Jason Anderson“ suchen und den Namen durch „Sue Smith“ ersetzen.
Es gibt 22 Vorkommen von „Jason Anderson“ in Textfeldern auf acht Arbeitsblattregistern und mehrere weitere in den Arbeitsblättern selbst.
Dorothy fragt sich, wie sie alle Arbeitsblattvorkommen und alle Kommentarvorkommen gleichzeitig finden und ersetzen kann.
Ohne Verwendung eines Makros ist dies nicht möglich. Das Makro müsste jede Zelle in der Arbeitsmappe, jeden Kommentar und jedes Textfeld durchsuchen, um festzustellen, ob Änderungen vorgenommen werden müssen. Das Folgende ist ein Beispiel dafür, wie dies getan werden kann:
Sub ReplaceNames() Dim sDefaultName As String Dim sNewName As String Dim sht As Worksheet Dim cmt As Comment Dim wks As Worksheet Dim sCmt As String Dim shp As Shape sDefaultName = "Jason Anderson" sNewName = InputBox("Enter your first and last name.", _ "Name Replacement") ' Replace cell text For Each sht In ActiveWorkbook.Worksheets sht.Cells.Replace what:=sDefaultName, _ Replacement:=sNewName, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, _ SearchFormat:=False, ReplaceFormat:=False Next sht ' Replace comment text For Each wks In ActiveWorkbook.Worksheets For Each cmt In wks.Comments sCmt = cmt.Text If InStr(sCmt, sDefaultName) <> 0 Then sCmt = Application.WorksheetFunction. _ Substitute(sCmt, sDefaultName, sNewName) cmt.Text Text:=sCmt End If Next cmt Next wks Set wks = Nothing Set cmt = Nothing ' Replace text box text On Error Resume Next For Each wks In ActiveSheet.Parent.Worksheets For Each shp In wks.Shapes With shp.TextFrame.Characters .Text = Application.WorksheetFunction.Substitute( _ .Text, sDefaultName, sNewName) End With Next shp Next wks End Sub
Das Makro fordert den Benutzer auf, einen neuen Namen einzugeben, und durchsucht dann Zellen, Kommentare und Textfelder, um festzustellen, ob der Standardname („Jason Anderson“) vorkommt. Wenn ja, wird der entsprechende Ersatz vorgenommen.
Wenn Sie für die Suche keine Makros verwenden möchten, ist möglicherweise eine Umstrukturierung der Arbeitsmappe hilfreich. Sie können beispielsweise ein „Dateneingabe-Arbeitsblatt“ erstellen, in das allgemeine Informationen wie der Name der Person eingegeben werden. In den anderen Arbeitsblättern wird der Name aus dem Dateneingabe-Arbeitsblatt mithilfe von Formeln referenziert. Somit wird eine Änderung im Dateneingabe-Arbeitsblatt und der Name in allen anderen Arbeitsblättern geändert.
Die Verwendung dieses Ansatzes kann auch mit Kommentaren funktionieren. Sie können den Kommentar oder die Form auswählen und in der Formelleiste eine Referenzformel wie die folgende eingeben:
=MyName
Dies setzt voraus, dass der Name des Benutzers im Arbeitsblatt zur Dateneingabe dem benannten Bereich MyName zugeordnet wurde. Wenn der Kommentar oder die Form zusätzliche Informationen enthalten muss, können Sie diesen Text in einer Zelle des Arbeitsblatts für die Dateneingabe erstellen und den Inhalt dieser Zelle dem Kommentar oder der Form zuweisen, wie für den benannten Bereich MyName angegeben.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (2614) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.