2011-11-25 419 views
39

我在Excel工作表中有一個「持續時間」列。它的單元格格式總是變化—我想將時間從幾分鐘轉換爲秒,但由於單元格格式化,它總是給我不同的答案。如何使用VBA將單元格的格式更改爲文本

我在想,在做轉換之前,我可以將該單元格轉換爲文本,以便它將文本視爲文本值,而不是嘗試自動格式化它。

目前我正在將所有數據複製到記事本中,然後將其保存回Excel工作表以刪除所有以前的格式。有沒有辦法使用VBA自動將單元格的格式設置爲文本?

+3

「誰的單元格格式總是變化」?請給我們一個例子。 –

回答

72

要回答你直接的問題,那就是:

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

或者

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

不過,我建議作出改變格式,你其實是想顯示的內容。這使您可以將數據類型保留在單元格中,並輕鬆使用單元格公式來操作數據。

7

那麼這應該改變你的格式爲文本。

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

在更改NumberFormat之前,無需激活或選擇 - 只需使用表格(1).Columns(1).NumberFormat =「@」 – aevanko

2

一點:您必須在將值加載到單元格之前設置NumberFormat屬性。當NumberFormat在單元格加載後設置時,我有一個九位數字,仍然顯示爲9.14E + 08。裝載值之前設置屬性所做的數量出現因爲我想,連勝文

OR:

你能不能先試的自動調整。
Excel_Obj.Columns(「A:V」)。EntireColumn.AutoFit

相關問題