it-swarm.com.de

So ändern Sie das Format einer Zelle in Text mithilfe von VBA

Ich habe eine "Dauer" -Spalte in einer Excel-Tabelle. Das Zellenformat ändert sich immer - ich möchte die Dauer von Minuten in Sekunden konvertieren, aber aufgrund der Zellenformatierung erhalte ich immer unterschiedliche Antworten.

Ich dachte, dass ich vor der Konvertierung dieses Zellenformat in Text konvertieren könnte, sodass es dies als Textwert betrachtet und nicht versucht, es automatisch zu formatieren.

Momentan kopiere ich alle Daten in den Editor und speichere sie dann zurück in die Excel-Tabelle, um das gesamte vorherige Format zu entfernen. Gibt es eine Möglichkeit, die Formatierung einer Zelle mithilfe von VBA zu automatisieren?

51
Code Hungry

Um Ihre direkte Frage zu beantworten, ist es:

Range("A1").NumberFormat = "@"

Oder

Cells(1,1).NumberFormat = "@"

Ich empfehle jedoch, das Format so zu ändern, wie es tatsächlich angezeigt werden soll. Auf diese Weise können Sie den Datentyp in der Zelle beibehalten und Zellformeln zum Bearbeiten der Daten verwenden.

89
Justin Self

Nun, dies sollte Ihr Format in Text ändern.

Worksheets("Sheetname").Activate
Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select
Selection.NumberFormat = "@"
6
Jon

Ein Punkt: Sie müssen die NumberFormat-Eigenschaft einstellen, bevor Sie den Wert in die Zelle laden. Ich hatte eine neunstellige Nummer, die immer noch als 9.14E + 08 angezeigt wurde, als NumberFormat eingestellt wurde, nachdem die Zelle geladen wurde. Wenn Sie die Eigenschaft vor dem Laden des Werts festlegen, wird die Zahl wie gewünscht als gerader Text angezeigt

ODER:

Könnten Sie zuerst ein Autofit versuchen.
Excel_Obj.Columns ("A: V"). EntireColumn.AutoFit

5
Dan McSweeney