Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellen als Text formatieren

Zellen als Text formatieren
Roger
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
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellen als Text formatieren
09.03.2010 22:26:14
Daniel
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
Anzeige
AW: Zellen als Text formatieren
10.03.2010 09:59:08
Roger
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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen als Text formatieren in Excel


Schritt-für-Schritt-Anleitung

Um Zellen in Excel per VBA als Text zu formatieren, kannst du das folgende Makro verwenden. Dieses Skript importiert eine CSV-Datei und formatiert die Daten als Text:

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

Achte darauf, die .TextFileColumnDataTypes entsprechend anzupassen, falls du unterschiedliche Datentypen importieren möchtest.


Häufige Fehler und Lösungen

  1. Fehler: Zellinhalt wird als Formel interpretiert

    • Lösung: Stelle sicher, dass du die .TextFileColumnDataTypes korrekt konfiguriert hast. Verwende 1 für Text, um sicherzustellen, dass der Inhalt als Text interpretiert wird.
  2. Fehler: Importierte Werte enthalten ein "=" Zeichen

    • Lösung: Entferne das "=" Zeichen in der Quelldatei oder nutze eine zusätzliche Logik im VBA-Skript, um es zu filtern.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch den Importassistenten in Excel nutzen:

  1. Öffne Excel und gehe zu Daten > Aus Text/CSV.
  2. Wähle die Datei aus und klicke auf Importieren.
  3. Im dritten Schritt des Assistenten kannst du das Format für jede Spalte auswählen. Wähle Text für die entsprechenden Spalten aus.

Praktische Beispiele

  • Beispiel 1: Um eine gesamte Spalte als Text zu formatieren, kannst du eine einfache VBA-Schleife nutzen:
Sub ZellenAlsTextFormatieren()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    ws.Columns("A").NumberFormat = "@"
End Sub
  • Beispiel 2: Verwende das Makro ImPort, um eine CSV-Datei zu importieren und gleich als Text zu formatieren.

Tipps für Profis

  • Verwende .TextFileTrailingMinusNumbers = True nur, wenn du mit negativen Zahlen arbeitest, um sicherzustellen, dass diese korrekt interpretiert werden.
  • Dokumentiere deine VBA-Skripte, um später einfacher Anpassungen vornehmen zu können.
  • Teste deine Makros in einer Kopie Deiner Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich eine ganze Spalte als Text formatieren? Du kannst die Spalte mit VBA formatieren, indem du ws.Columns("A").NumberFormat = "@" verwendest.

2. Was ist der Unterschied zwischen dem Importassistenten und der VBA-Methode? Der Importassistent bietet eine visuelle Oberfläche, während VBA dir mehr Automatisierung und Anpassungsfähigkeit ermöglicht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige