![](/img/trans.png)
[英]How to change Format of a Cell to Text using VBA, Columns(1).NumberFormat = “@” doesn't work for me
[英]How to change Format of a Cell to Text using VBA
我在 Excel 工作表中有一個“持續時間”列。 它的單元格格式總是在變化——我想將持續時間從分鍾轉換為秒,但由於單元格格式,它總是給我不同的答案。
我在想,在進行轉換之前,我可以將該單元格格式轉換為文本,以便它會將其視為文本值,而不是嘗試自動設置格式。
目前我正在將所有數據復制到記事本中,然后將其保存回 Excel 工作表以刪除所有以前的格式。 有沒有辦法使用 VBA 自動將單元格的格式設置為文本?
要回答您的直接問題,它是:
Range("A1").NumberFormat = "@"
或者
Cells(1,1).NumberFormat = "@"
但是,我建議將格式更改為您實際想要顯示的格式。 這允許您保留單元格中的數據類型並輕松使用單元格公式來操作數據。
一點:您必須在將值加載到單元格之前設置 NumberFormat 屬性。 當加載單元格后設置 NumberFormat 時,我有一個九位數字仍然顯示為 9.14E+08。 在加載值之前設置屬性使數字顯示為我想要的,作為直接文本。
或者:
您可以先嘗試自動調整嗎:
Excel_Obj.Columns("A:V").EntireColumn.AutoFit
那么這應該將您的格式更改為文本。
Worksheets("Sheetname").Activate
Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select
Selection.NumberFormat = "@"
對於以科學記數法設置格式顯示為僅“#”的大數字
防止科學記數法
With Range(A:A)
.NumberFormat = "@"
.Value = .Formula
End With
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.