【发布时间】:2017-01-26 21:39:55
【问题描述】:
我正在努力在我的项目中获得并保持领先的 0。以下是当前相关的代码:
Dim jobNum As String
jobNum = Left(r1.Cells(1, 1), 6)
r2.Cells(1, JOBCOL) = (jobNum)
r2.Cells(1, JOBCOL).NumberFormat = "@"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 我试过的东西 -
r2.Cells(1, JOBCOL) = CStr(jobNum)
- 尝试将其保持在字符串模式,因为也许它正在粘贴它,这就是问题所在?
If Len(jobNum) = 4 Then
jobNum = "'00" & jobNum
Else
jobNum = jobNum
End If
好的,好的,如果我不能让它正确阅读,也许我可以手动添加它? (预期长度为 6,如果长度注册为 4 我有问题,我需要添加两个前导 0)
最后,我首先尝试让它正确阅读:
Dim Jobnum as String
Dim Jobnumfixed as Integer
jobNum = Left(r1.Cells(1, 1), 6)
jobnumfixed = format (jobnum, "000000")
我从Excel VBA Won't Keep Leading Zeroes 获取了所有这些。但是,它们都没有达到预期的结果,即在我的工作表中获得并保留一些前导 0。我究竟做错了什么?我应该在哪里解决这个问题?
谢谢
编辑:设法让它工作。 jobNum = Left(r1.Cells(1, 1), 6) 变成了 jobNum = ("'" & Left(r1.Cells(1, 1), 6)),现在一切正常。万岁!
【问题讨论】:
-
将单元格格式化为文本以保留前导零
-
你需要jobnum是数字还是文本?如果是文本,请在输入数据之前采用@Sorceri 将单元格格式化为文本的建议。如果是数字,只需使用带有“000000”的自定义格式来显示每个数字填充到前导零的 6 位数字(4 变为 000004,123 变为 000123)。
-
...当我说“自定义格式”时,我指的不是
Format函数,而是功能区“主页”选项卡上的格式下拉菜单。 -
添加了行 r2.Cells(1, JOBCOL).NumberFormat = "@" - 仍然没有到达那里。同上转到主页选项卡并更改默认格式。编辑:我得到它的工作!我在 jobnum= 的开头添加了 ("'"&...),现在一切正常