存储数据而不是使用预期格式输出

时间:2018-03-23 20:01:39

标签: excel vba excel-vba

我在电子表格中存储了一些数据,这些数据在Debug.Print之后正常运行

存储的数据是一个长数字,以一个或多个0开头。

我尝试使用以下几个不同的代码段,但没有一个输出我想要的内容......

.Cells(LR + 1, index).value = "00049875142"

输出 49875142

.Cells(LR + 1, index).value2 = "0008789875949898451142"

输出: 8.78988E + 18

问题:在将数据重新导入电子表格时,如何让输出在字符串中添加前导0

2 个答案:

答案 0 :(得分:3)

确保在将值存储到文本之前将单元格格式化为文本。

.Cells(LR + 1, index).NumberFormat = "@"
.Cells(LR + 1, index).value = "00049875142"

虽然不一次为每个单元格设置格式会更有效,但在循环和设置值之前会对范围进行设置。

答案 1 :(得分:2)

您可以使用自定义数字格式添加前导零(在多个单元格中似乎不是标准格式),也可以将数据作为文本输入。

.Cells(LR + 1, index).value = "'00049875142"
 'more loops
.Cells(LR + 1, index).value2 = "'0008789875949898451142"

第二个需要在任何情况下作为文本输入,因为它大于15位且15位精度规则将截断重要数据。

.Cells(LR + 1, index).numberformat  ="00000000000"
.Cells(LR + 1, index).value = 49875142
 'more loops
.Cells(LR + 1, index).numberformat  ="@"
.Cells(LR + 1, index).value2 = "0008789875949898451142"