Wie kann man ganze Spalten oder Bereiche in Excel von Zahlen, Datum oder Zeit format umwandeln in Echten Text.
Version 1: Umwandeln von Nummern in Text
Man kann einfach Bereiche in Vba mit der Funktion Range.TextToColumns umwandeln.
Dabei werden sicher Zahlen in Text umgewandelt.
Allerdings entsteht hier bei Datum der Fehler, dass diese im Amerikanischen Date Time Format angezeigt werden. Bei der Bedienung über die Menüleiste ist die Umwandlung korrekt nur auf vba Code-Ebene entsteht der Fehler
Option Explicit On
Private Sub Korrektur_Zahlen_in_Text_Umwandeln() '--------< Korrektur_Zahlen_in_Text_Umwandeln() >--------- '*wandelt die SAP Spalten Personalnummer und Abteilungen in Text um, damit die SVerweise und Vergleiche keine Fehlercode 13, Typumwandlung #NV erzeugen '-1 Convert_Range_From_Number_To_Text Worksheets("Tabelle1").Range("A:A") 'Mitarbeiter
'--------</ Korrektur_Zahlen_in_Text_Umwandeln() >--------- End Sub '==========< Convert To Text >==================
Private Function Convert_Range_From_Number_To_Text(ByRef cells_Range) '--------< Convert_Range_Number_To_Text(Range) >--------- '*converts a cell-Range from numbers to text cells_Range.TextToColumns DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, xlTextFormat), TrailingMinusNumbers:=True
'FieldInfo:=Array(1, 2) '*parameter 2 'Const xlDMYFormat = 4 'Const xlGeneralFormat = 1 'Const xlMDYFormat = 3 'Const xlMYDFormat = 6 'Const xlSkipColumn = 9 'Const xlTextFormat = 2 'Const xlYDMFormat = 8 'Const xlYMDFormat = 5
'--------</ Convert_Range_Number_To_Text(Range) >--------- End Function '==========</ Convert To Text >==================
|
Version 2: Umwandeln von Datum und Uhrzeit und komplexen Zellen
Mit folgender Funktion kann man sicher alle möglichen Zellen aus Excel umwandeln in die gleiche Anzeige als Text.
Hierbei wird für jede Excel Zelle der Text ausgelesen, das Format auf Text umgestellt und dann der Text zurück geschrieben
sText = CStr(cell.Text) 'cell.Value cell.NumberFormat = "@" cell.Value = sText
|
Vba Code zum Convertieren von Datum in Text
Option Explicit On
Private Sub Korrektur_Datum_in_Text_Umwandeln() '--------< Korrektur_Datum_in_Text_Umwandeln() >--------- '*wandelt die SAP Spalten Datum und Uhrzeit in Text keine Fehlercode 13, Typumwandlung #NV erzeugen Convert_Range_From_Date_To_Text Worksheets("Tabelle1").Range("D:D") 'Beginndatum der Mitarbeiterzeit Convert_Range_From_Date_To_Text Worksheets("Tabelle1").Range("E:E") 'Beendet um Convert_Range_From_Date_To_Text Worksheets("Tabelle1").Range("F:F") 'Beginn '--------</ Korrektur_Datum_in_Text_Umwandeln() >--------- End Sub
'==========< Convert To Text >==================
Private Function Convert_Range_From_Date_To_Text(ByRef cells_Range) '--------< Convert_Range_Number_To_Text(Range) >--------- '*converts a cell-Range from Date and Time to text Dim cell As Range Dim sText As String For Each cell In cells_Range If Not cell.Value Like "" Then 'cell.Value = DateValue(cell.Value) sText = CStr(cell.Text) 'cell.Value cell.NumberFormat = "@" cell.Value = sText End If Next
'--------</ Convert_Range_From_Date_To_Text(Range) >--------- End Function '==========</ Convert To Text >==================
|