我在Excel工作表中有一个“持续时间”列 . 它的单元格格式总是会改变 - 我希望将持续时间从几分钟转换为几秒钟,但由于单元格格式化,它总是给我不同的答案 .
我在想,在进行转换之前,我可以将该单元格格式转换为文本,以便将其视为文本值,而不是尝试自动格式化 .
目前我正在将所有数据复制到记事本中,然后将其保存回Excel工作表以删除所有以前的格式 . 有没有办法使用VBA自动将单元格的格式设置为文本?
要回答您的直接问题,它是:
Range("A1").NumberFormat = "@"
要么
Cells(1,1).NumberFormat = "@"
但是,我建议将格式更改为您实际想要显示的内容 . 这允许您在单元格中保留数据类型,并轻松使用单元格公式来操作数据 .
那么这应该将您的格式更改为文本 .
Worksheets("Sheetname").Activate Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select Selection.NumberFormat = "@"
一点:在将值加载到单元格之前,必须设置NumberFormat属性 . 在加载单元格后设置NumberFormat时,我有一个九位数仍然显示为9.14E 08 . 在加载值之前设置属性使得数字显示为我想要的,作为直文
要么:
你能先尝试自动调试吗?Excel_Obj.Columns("A:V").EntireColumn.AutoFit
3 回答
要回答您的直接问题,它是:
要么
但是,我建议将格式更改为您实际想要显示的内容 . 这允许您在单元格中保留数据类型,并轻松使用单元格公式来操作数据 .
那么这应该将您的格式更改为文本 .
一点:在将值加载到单元格之前,必须设置NumberFormat属性 . 在加载单元格后设置NumberFormat时,我有一个九位数仍然显示为9.14E 08 . 在加载值之前设置属性使得数字显示为我想要的,作为直文
要么:
你能先尝试自动调试吗?
Excel_Obj.Columns("A:V").EntireColumn.AutoFit