Ersetzen und Konvertieren in einem Makro (Microsoft Excel)
Saskia hatte ein Problem beim Konvertieren von Informationen unter der Kontrolle eines Makros und konnte sie weiterhin in Excel verwenden. Wenn sie ein Arbeitsblatt mit mit Dezimalstellen formatierten Zahlen erhalten würde, müsste sie die Werte so konvertieren, dass sie Dezimalkommas verwenden, was mit der Anzeige von Zahlen in Holland übereinstimmt. Sie würde suchen und ersetzen, und alles würde gut funktionieren. Als sie jedoch ein Makro aufzeichnete, das das Suchen und Ersetzen durchführte, wurden die resultierenden Zellen als Text anstatt als numerische Werte behandelt.
Der Grund für dieses Verhalten ist, dass Excel VBA Amerikanisch „spricht“ und einige Aktionen, die mit einem aufgezeichneten Makro ausgeführt werden, aufgrund dieser Tatsache nicht wie erwartet funktionieren. Da American Excel erwartet, dass das Dezimaltrennzeichen ein Punkt ist, führt die Interpretation einer „Zahl“ in VBA mit einem anderen Trennzeichen (z. B. einem Komma) dazu, dass Excel den Wert als Text betrachtet.
Die Problemumgehung besteht nicht darin, Suchen und Ersetzen zu verwenden, sondern einen anderen Trick zu verwenden. Betrachten Sie das folgende kurze Makro:
Sub ConvertNumbers() Dim oConRange As Range Set oConRange = ActiveSheet.UsedRange.Cells.SpecialCells(xlConstants) oConRange.Value = oConRange.Value End Sub
Dieses Makro definiert einen Bereich, der aus allen Zellen besteht, die Konstanten enthalten. Dann setzt es den Wert jeder Zelle im Bereich gleich sich selbst. Dabei wertet Excel den Inhalt jeder Zelle neu aus und konvertiert ihn in den entsprechenden numerischen Wert. Mit anderen Worten, Zahlen, die Dezimalstellen enthalten, werden in Zahlen umgewandelt, die Dezimalkommas enthalten.
Es gibt andere Möglichkeiten, wie Sie die Zellen mithilfe eines Makros verarbeiten können, aber das obige Verfahren scheint am besten und am schnellsten zu funktionieren.
_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 (12630) gilt für Microsoft Excel 2007, 2010 und 2013. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: