【发布时间】:2017-07-07 01:42:37
【问题描述】:
区分文本和数字的基本规则是文本左对齐,数字右对齐。
在一个空白单元格中,我将格式设置为文本。然后,我输入了25。这个“数字”是左对齐的,暗示它是文本。单元格的左上角有一个绿色三角形,上面写着
“单元格中的数字被格式化为文本...”。
到目前为止一切顺利。
在下面的单元格中,我输入了25。它是右对齐的,暗示它是数字。然后我在上面运行代码Range.NumberFormat="@"。它变成了左对齐。但是,没有绿色三角形。
当我使用=IF(A1="25",1,0) 检查第一个单元格时,公式返回1。下一个单元格上的相同测试(当然是不同的地址)返回0。
在我看来,代码将25 转换为文本(从对齐方式判断),同时没有将25 转换为文本(从缺少绿色三角形和IF 测试判断。)
发生了什么事?
【问题讨论】:
-
好的,所以输入数字,然后手动将单元格的格式更改为文本使其左对齐数字,但不会将数字更改为字符串。用 VBA 做也是一样的。只有在输入数字之前将数字格式设置为文本时,数字才会存储为字符串。
-
这个有效:
Range("A1") = Str(Range("A1"))和Range("A1") = "'"&Range("A1")
标签: vba excel excel-2010