我有一堆字符串以" 0123"的格式存储在阵列中,但是当我试图将它们转移到一系列单元格中时,丢失了引导。如何保留数组的原始价值和格式?例如:
Range("B" & k + 9) = abc(k)
我尝试了Range("B" & k + 9).value
,Range("B" & k + 9).value2
和Range("B" & k + 9).text
,所有这些都给了我同样的东西,这是没有领先0
的数字值,例如123
,而不是0123
。
我可以使用NumberFormat函数来化妆显示为0123
的结尾值,但是单元格中的内容仍然只是123
。我如何包括领先的0
?
这里的问题是数学上, 0123
和 123
的数字恰好相同的值。因此,如果您想与他们计算必须保持数字,并且必须通过更改.NumberFormat
来生成领先的0
。
Range("A1").Value = 123
Range("A1").NumberFormat = "0000"
如果实际上将这些数字视为不想计算的字符串(例如序列号),则可以通过将单元格的.NumberFormat
设置为 Text
在将值写入其中:
Range("A1").NumberFormat = "@"
Range("A1").Value = "0123"
如果您不更改.NumberFormat
first ,则Excel识别您将数字值写入单元格,并自动将您的字符串转换为数字值。
请注意,您无法再计算该单元格,因为"数字"现在被视为字符串。因此,建议使用第一种方法。