【问题标题】:How to change Format of a Cell to Text using VBA如何使用 VBA 将单元格的格式更改为文本
【发布时间】:2022-03-16 04:06:05
【问题描述】:

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

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

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

【问题讨论】:

  • "谁的单元格格式总是改变"??请给我们举个例子。

标签: excel vba


【解决方案1】:

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

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

或者

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

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

【讨论】:

    【解决方案2】:

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

    或者:

    你能先试试自动调整吗:

    Excel_Obj.Columns("A:V").EntireColumn.AutoFit
    

    【讨论】:

    • 在设置值之前,您真的可以帮助我了解有关设置 NumberFormat 的提示!发送!
    【解决方案3】:

    这应该将您的格式更改为文本。

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

    【讨论】:

    • 在更改 NumberFormat 之前无需激活或选择 - 只需使用 Sheets(1).Columns(1).NumberFormat = "@"
    【解决方案4】:

    对于以科学计数法显示的大数字,将格式设置为“#”

    【讨论】:

      【解决方案5】:

      防止科学记数法

      With Range(A:A)
          .NumberFormat = "@"
          .Value = .Formula
      End With
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多