[Excel] fehlerhafter Import - String "" statt Empty

Gepostet am: Apr 14, 2011 12:52:31 PM

Wenn man csv-Dateien oder dergleichen importiert, kommt es immer wieder vor, dass Zellen den falschen Datentyp haben.

Den Datentyp kann man mit folgender, kurzen Funktion ermitteln

DatenTyp ermitteln

Public Function ErmittleDatentyp(myCell As Range) As String     ErmittleDatentyp = TypeName(myCell.Value)End Function

Damit aber alle Rechenoperationen tadellos funktionieren, empfiehlt es sich insbesondere Zellen vom DatenTyp "String" ohne Inhalt auf "Empty" zu setzen. Dazu habe ich diese kurze Funktion geschrieben:

ImportFehler beheben

Public Sub ConvertEmptyCells()     Dim myRange As Range     For Each myRange In ActiveSheet.UsedRange         If TypeName(myRange.Value) = "String" Then             If Len(myRange.Value) = 0 Then                 myRange.Clear             End If         End If     NextEnd Sub

Dies hilft, wenn lediglich leere Zellen vom falschen Datentyp sind. Meist ist es jedoch auch der Fall, dass Zahlen selbst als String importiert wurden, dann hilft folgende Funktion:

Convert Import Errors

Public Function ConvertImportErrors()     Dim myRange As Range     For Each myRange In ActiveSheet.UsedRange         If TypeName(myRange.Value) = "String" Then             If Len(myRange.Value) = 0 Then                 myRange.Clear             ElseIf IsNumeric(myRange.Value) Then                 myRange.Value = CDbl(myRange.Value)             End If         End If     NextEnd Function

Ähnliche Funktionen könnte man unzählige schreiben, je nachdem was falsch importiert wurde, wie zum Beispiel ein Datum, das als String importiert wird. Da das aber abhängig von der jeweiligen Quelle ist, und man immer mit den selben Datenquellen zu tun hat, kann man sich diese Funktionen auch recht leicht selber schreiben. 

Wenn man die Funktion öfters benötigt, kann man sie sich einfach auf die Symbolleiste legen.