我有一堆字符串以“ 0123”的格式存储在数组中,但是当我尝试将它们转移到一系列单元格中时,前导丢失了。如何保留数组的原始值和格式?例如:
Range("B" & k + 9) = abc(k)
我尝试了Range("B" & k + 9).value
,Range("B" & k + 9).value2
和Range("B" & k + 9).text
,他们都给了我同样的东西,这是一个数字值,没有前导0
,例如{{ 1}},而不是123
。
我可以使用numberformat函数将结束值修饰地显示为0123
,但是单元格中的内容仍然只是0123
。如何包含前导123
?
答案 0 :(得分:3)
这里的问题是,数学上0123
和123
的值完全相同。因此,如果要与他们一起计算,必须通过更改0
来生成必须停留日期和前导.NumberFormat
。
Range("A1").Value = 123
Range("A1").NumberFormat = "0000"
如果这些数字实际上被视为您不希望使用的字符串(例如序列号),则可以通过将单元格的.NumberFormat
设置为{{1}来将它们存储为字符串。 } 之前,您将值写入其中:
Text
如果您不先更改Range("A1").NumberFormat = "@"
Range("A1").Value = "0123"
,则Excel会识别出您在单元格中写入了数值,并自动将字符串转换为数值。
请注意,您无法再使用该单元格进行计算,因为现在将“数字”视为字符串。因此,建议对数字使用第一种方法。