单元格的值将转换为数字,而不是“ 000000”格式

时间:2019-03-11 13:56:51

标签: excel vba

我有一堆字符串以“ 0123”的格式存储在数组中,但是当我尝试将它们转移到一系列单元格中时,前导丢失了。如何保留数组的原始值和格式?例如:

Range("B" & k + 9) = abc(k)  

我尝试了Range("B" & k + 9).valueRange("B" & k + 9).value2Range("B" & k + 9).text,他们都给了我同样的东西,这是一个数字值,没有前导0,例如{{ 1}},而不是123

我可以使用numberformat函数将结束值修饰地显示为0123,但是单元格中的内容仍然只是0123。如何包含前导123

1 个答案:

答案 0 :(得分:3)

这里的问题是,数学上0123123的值完全相同。因此,如果要与他们一起计算,必须通过更改0来生成必须停留日期和前导.NumberFormat

Range("A1").Value = 123
Range("A1").NumberFormat = "0000"

如果这些数字实际上被视为您不希望使用的字符串(例如序列号),则可以通过将单元格的.NumberFormat设置为{{1}来将它们存储为字符串。 } 之前,您将值写入其中:

Text

如果您不先更改Range("A1").NumberFormat = "@" Range("A1").Value = "0123" ,则Excel会识别出您在单元格中写入了数值,并自动将字符串转换为数值。

请注意,您无法再使用该单元格进行计算,因为现在将“数字”视为字符串。因此,建议对数字使用第一种方法。