首页 文章

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

提问于
浏览
47

我在Excel工作表中有一个“持续时间”列 . 它的单元格格式总是会改变 - 我希望将持续时间从几分钟转换为几秒钟,但由于单元格格式化,它总是给我不同的答案 .

我在想,在进行转换之前,我可以将该单元格格式转换为文本,以便将其视为文本值,而不是尝试自动格式化 .

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

3 回答

  • 5

    要回答您的直接问题,它是:

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

    要么

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

    但是,我建议将格式更改为您实际想要显示的内容 . 这允许您在单元格中保留数据类型,并轻松使用单元格公式来操作数据 .

  • 85

    那么这应该将您的格式更改为文本 .

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

    一点:在将值加载到单元格之前,必须设置NumberFormat属性 . 在加载单元格后设置NumberFormat时,我有一个九位数仍然显示为9.14E 08 . 在加载值之前设置属性使得数字显示为我想要的,作为直文

    要么:

    你能先尝试自动调试吗?
    Excel_Obj.Columns("A:V").EntireColumn.AutoFit

相关问题