Wie kann ich das Zahlenformat einer Zelle in einer aus der Datenbank importierten Tabelle ändern?

Wie kann ich das Zahlenformat einer Zelle in einer aus der Datenbank importierten Tabelle ändern?

Ich habe ein Blatt, das so aussieht -

    A  |     B      | C
   ----------------------
    2  |  Okay      |  0
    3  |  Not okay  | 0

Die Zelle C3hat den grünen Fehlerzeiger und sagt: „Die Zahl in dieser Zelle ist als Text formatiert oder mit einem Apostroph versehen“, und sie ist natürlich linksbündig.

Wenn ich das Format für beide Zellen C2und anzeige C3, werden beide als „Allgemein“ angezeigt.

Wenn ich VBA verwende, um „NumberFormat“ zu untersuchen, werden beide als „Allgemein“ angezeigt.

Ich verwende übrigens Office 2010.

Ich würde dies gerne bereinigen (das passiert bei Dutzenden von Zellen in einer Reihe von Arbeitsblättern), indem ich das Format mithilfe von VBA-Code von „Text“ in „Allgemein“ ändere, aber wie kann ich dies tun, wenn davon ausgegangen wird, dass die betreffenden Zellen bereits als „Allgemein“ formatiert sind?

Antwort1

Dies kann passieren, wenn Excel denkt, die Zahl sei als Text gespeichert (auch wenn es das Gegenteil behauptet und Sie das Format in „Zahl“ geändert haben), weil die Zahl am anderen Ende falsch codiert wurde.

Eine sehr einfache Lösung für als Text gespeicherte Zahlen besteht darin, eine zusätzliche Spalte mit einer Formel hinzuzufügen, die die Zahl in eine Zahl umwandelt.

=$C2*1

Und ziehen Sie das einfach nach unten und verweisen Sie dann darauf. Wenn Sie mit einer Live-verbundenen Tabelle arbeiten, bedeutet diese Spalte am Ende der Tabelle, dass der Formelbereich mit dem Datenbereich erweitert wird.


Natürlich könnten Sie mit VBA eine Schleife ausführen, die die Daten durchläuft und jeden Wert in der Spalte durch das Ergebnis dieser Formel ersetzt.

Antwort2

Hier ist ein VBA-Codeausschnitt, der den Zweck erfüllt.

Sub FixTextFormattedNumbers()
Dim s As Worksheet, r As Range
'Set target sheet and range
Set s = Sheets("Sheet1")
Set r = s.Range("A1:A10")

For Each c In r
    On Error Resume Next
    c.Value = CDbl(c.Value)
Next c
End Sub

Die Fehlerbehandlung gilt nur für den Fall, dass sich im angegebenen Bereich tatsächlich Text befindet.

Antwort3

Dies kann häufig beim Kopieren, Einfügen oder Importieren von Daten passieren. Wenn es sich um eine ganze Spalte handelt, können Sie das Problem am besten beheben, indem Sie die Spalte im Wesentlichen erneut importieren und dabei mehr Kontrolle über die Annahmen von Excel haben, um welche Art von Daten es sich handelt.

So geht's:

  1. Markieren Sie eine Spalte mit diesem Problem

  2. Wählen Sie Data->Text To Columns

  3. Klicken Sie auf Finish(Standardeinstellungen funktionieren in diesem Fall - sie lauten Getrennt -> Tabulator -> Allgemein (Format)). Wenn Sie jemals das Gegenteil tun müssten (Zahlen erneut importieren, aber erzwingen, dass sie als Text behandelt werden), ändern Sie die dritte Option in Text

verwandte Informationen