Wie kann man ganze Spalten oder Bereiche
in Excel von Zahlen, Datum oder Zeit format umwandeln in Echten Text.
In vba Makro
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 >==================
|