|
Betrifft: Zellen als Text formatieren
von: Roger Rabbit
Geschrieben am: 09.03.2010 18:40:51
Hallo zusammen,
beim Import einer csv-Datei werden - für mich nicht erklärbar - ein paar Textpassagen (Aufzählungen mit Spiegelstrich) als Formel interpretiert und der Zellinhalt dementsprechend als $NAME? ausgegeben. Alle anderen Aufzählungen werden ohne Fehler als Text importiert.
Wie kann ich die betreffenden Zellen per VBA als Text formatieren und das eingefügte "=" Zeichen entfernen?
Gruß
Rüdiger
 |
Betrifft: AW: Zellen als Text formatieren
von: Daniel
Geschrieben am: 09.03.2010 22:26:14
HI
wenn die die CSV-Datei über die Importfunktion einliest, dann gibt es im Assistenten im Schritt 3 die Möglichkeit, den einzelnen Spalten ein bestimmtes Format zuzuweisen, darunter auch TEXT.
wenn du dieses Format für die Spalte auswählst, dann wird Excel die Daten so belassen wie sie sind und nicht versuchen, sie in eine Formel umzuwandeln.
Falls du es als VBA-Funktion brauchst, führe die Aktion von Hand aus, lass dabei den Recorder mitlaufen und schau dir dann den aufgezeichneten Code an, dann siehst du, welche Einstellungen du tätigen musst.
Gruß, Daneil
Betrifft: AW: Zellen als Text formatieren
von: Roger Rabbit
Geschrieben am: 10.03.2010 09:59:08
Hallo Daniel,
danke für Deine Antwort. Den Import erledige ich mit folgendem Makro:
Sub ImPort()
Dim v As Variant
Dim w As Variant
v = Application.GetOpenFilename
w = "TEXT;" & v
With ActiveSheet.QueryTables.Add(Connection:=w, Destination:=Range("$A$1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Generell wird alles wie gewünscht als Text interpretiert - nur mit ein paar Ausnahmen, die ich mir nicht erklären kann. Da nur Text mit Spiegelstrichen betroffen ist, liegt der Verdacht nahe, dass das Problem durch dieses "Minuszeichen" verursacht wird. Die Frage ist nur, warum taucht das Problem in einigen Fällen auf, in anderen nicht?
Gruß
Rüdiger
|