Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA赢得';t保持前导零_Vba_Excel - Fatal编程技术网

Excel VBA赢得';t保持前导零

Excel VBA赢得';t保持前导零,vba,excel,Vba,Excel,我似乎找不到在VBA代码中保存前导零的方法。零是必需的,因为它们对应于唯一的ID 我试着把数字格式改成文本和0000。。。。在excel和我的实际代码中使用相同的方法: ActiveSheet.Cells(i,j).NumberFormat=“00000” 还有其他建议吗?(如果我在VBE中手动键入这些数字,也会去掉前导零)。 编辑: 这最终是在一个循环中,但我正在作为单独的迭代进行调试。将格式设置为text或“00000”应该可以。下面的小片段给出了预期的结果。第一个存储0001的值,第二个存

我似乎找不到在VBA代码中保存前导零的方法。零是必需的,因为它们对应于唯一的ID

我试着把数字格式改成文本和0000。。。。在excel和我的实际代码中使用相同的方法: ActiveSheet.Cells(i,j).NumberFormat=“00000”

还有其他建议吗?(如果我在VBE中手动键入这些数字,也会去掉前导零)。 编辑:


这最终是在一个循环中,但我正在作为单独的迭代进行调试。

将格式设置为text或“00000”应该可以。下面的小片段给出了预期的结果。第一个存储0001的值,第二个存储格式化为0001的1的值

如果单元格值存储在字符串变量中,也可以这样做

Sub set_value()

Range("A1").NumberFormat = "@"
Range("A1").Value2 = "0001"

Range("B1").NumberFormat = "0000"
Range("B1").Value2 = "1"

End Sub

下面所有的讨论都是关于给牢房写信,而不是阅读。更改数字格式不是那样的。 看看您是否能理解此代码的工作原理:

dim v as integer
v = val(Sheets("Sheet1").Cells(2, 2))
dim cid as string
cid = format(v, "000")
您不应该使用
Select
ActiveSheet
,这样做是不必要的;并且,如果没有应参考的表格,则切勿使用
单元格。
Val
如果单元格实际上已经是数字而不是文本,则可以省略)


早些时候的回答…:

这个代码对我来说非常好

Worksheets(1).Columns("A").NumberFormat = "@"
Worksheets(1).Cells(1, "A").Value = "00023"
而且

Worksheets(1).Columns("A").NumberFormat = "000000"
Worksheets(1).Cells(1, "A").Value = "0023"
(此处字符串转换为数字并以6位数字显示)

编辑:
如果失败了——尽管我无法解释——我仍然打赌
应该真的能工作:
(不需要数字格式。)


所以,正如我提到的,我已经试过了。我一直在尝试调试,MsgBox在这一步之后立即报告一个剥离的数字。我一直在试着调试,MsgBox在这个步骤后立即报告一个剥离的数字。你应该编辑你的问题,并添加一些你正在使用的实际代码。
Worksheets(1).Columns("A").NumberFormat = "000000"
Worksheets(1).Cells(1, "A").Value = "0023"
Dim s As String
s = "0002"
Worksheets(1).Cells(1, "A").Value = "'" & s