从数字告诉文本的基本规则是文本左对齐且数字右对齐。
在空白单元格中,我将格式设置为 text 。然后,我输入了25
。这个“数字”左对齐,暗示它是文本。在单元格的左上角有一个绿色三角形,上面有一个说明
“单元格中的数字被格式化为文本...”。
到目前为止一切顺利。
在下面的单元格中,我输入了25
。它是右对齐的,暗示它是数字。然后我在其上运行代码Range.NumberFormat="@"
。它变得左对齐了。但是,没有绿色三角形。
当我使用=IF(A1="25",1,0)
检查第一个单元格时,公式返回1
。返回0
的下一个单元格上的相同测试(差异地址,当然)。
在我看来,代码将25
转换为文本(从对齐方式判断),同时未将25
转换为文本(从缺少绿色三角形和{{判断) 1}}测试。)
发生了什么事?
答案 0 :(得分:0)
这可能不是最有效的方法,但它有效:
Option Explicit
Sub convertText()
Dim testValue As Variant
testValue = ActiveCell.Value & ""
ActiveCell.ClearContents
ActiveCell.NumberFormat = "@"
ActiveCell.Value = testValue
End Sub