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?
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.
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 = "@"
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