我似乎无法找到一种方法来保存 VBA 代码中的前导零。这些零是必需的,因为它们对应于唯一的 ID。
我尝试在 excel 中将数字格式更改为文本和 0000...,并在我的实际代码中采用相同的方法:
ActiveSheet.Cells(i, j).NumberFormat = "00000"
还有其他建议吗? (如果我手动将这些数字输入到 VBE 中,它也会删除前导零)。
编辑:
Sheets.Add.Name = "Temp"
Sheets("Sheet1").Select
ActiveSheet.Cells(2, 2).NumberFormat = "000"
cid = Cells(2, 2)
MsgBox cid
Sheets("Sheet2").Select
ActiveSheet.Cells(6, 1).NumberFormat = "00000"
sid = Cells(6, 1)
Sheets("Temp").Select
Url = _
"URL;" & _
"http......asp?" & _
"X1=" & cid & "&" & _
"X2=" & sid & "&"
这最终是在一个循环内,但我正在作为单独的迭代进行调试。
以下所有讨论都是关于writing到一个单元格,而不是从中读取。更改数字格式不起作用。
看看你是否能弄清楚这段代码是如何工作的:
dim v as integer
v = val(Sheets("Sheet1").Cells(2, 2))
dim cid as string
cid = format(v, "000")
你永远不应该使用Select
and ActiveSheet
这样,就没有必要了;并且从不使用Cells
没有它应该引用的工作表。
(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位数字显示)
EDIT:
如果失败了——虽然我无法解释这一点——我仍然敢打赌'
should really work:
(无需数字格式。)
Dim s As String
s = "0002"
Worksheets(1).Cells(1, "A").Value = "'" & s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)