Excel,VBA,使用numberformat =“@”工作或不工作将数字转换为文本?

时间:2017-07-07 01:42:37

标签: excel vba excel-vba excel-2010

从数字告诉文本的基本规则是文本左对齐且数字右对齐。

在空白单元格中,我将格式设置为 text 。然后,我输入了25。这个“数字”左对齐,暗示它是文本。在单元格的左上角有一个绿色三角形,上面有一个说明

  

“单元格中的数字被格式化为文本...”。

到目前为止一切顺利。

在下面的单元格中,我输入了25。它是右对齐的,暗示它是数字。然后我在其上运行代码Range.NumberFormat="@"。它变得左对齐了。但是,没有绿色三角形。

当我使用=IF(A1="25",1,0)检查第一个单元格时,公式返回1。返回0的下一个单元格上的相同测试(差异地址,当然)。

在我看来,代码将25转换为文本(从对齐方式判断),同时未将25转换为文本(从缺少绿色三角形和{{判断) 1}}测试。)

发生了什么事?

1 个答案:

答案 0 :(得分:0)

这可能不是最有效的方法,但它有效:

Option Explicit
Sub convertText()
    Dim testValue As Variant
    testValue = ActiveCell.Value & ""
    ActiveCell.ClearContents
    ActiveCell.NumberFormat = "@"
    ActiveCell.Value = testValue
End Sub