如何使用VBA将单元格的格式更改为文本

我有一个Excel工作表中的“持续时间”列。 它的单元格格式总是变化 – 我想把时间从几分钟转换成秒,但是由于单元格的格式化,它总是给我不同的答案。

我在考虑在进行转换之前,我可以将这种单元格格式转换为文本,以便将其视为文本值,而不是尝试自动格式化。

目前,我将所有数据复制到记事本,然后将其保存回Excel工作表以删除所有以前的格式。 有没有办法使用VBA自动将单元格的格式设置为文本?

要回答你的直接问题,这是:

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

要么

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

不过,我build议将格式更改为您实际需要显示的内容。 这使您可以将数据types保留在单元格中,并轻松使用单元格公式来操作数据。

那么这应该改变你的格式文本。

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

一点:您必须在将值加载到单元格之前设置NumberFormat属性。 我有一个九位数的数字,仍然显示为9.14E + 08时NumberFormat设置单元格加载后。 在加载数值之前设置属性使得数字以我想要的forms出现,如直线文本

要么:

你可以先尝试一个自动调整。
Excel_Obj.Columns( “A:V”)EntireColumn.AutoFit。