Excel VBA不会保持前导零

pro*_*221 9 excel vba excel-vba

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

我已经尝试将数字格式更改为文本和0000 ....在excel和我的实际代码中相同的方法: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 & "&"
Run Code Online (Sandbox Code Playgroud)

这是最终的循环内部,但我正在调试作为单独的迭代.

Kek*_*mau 10

以下所有的讨论都是关于写入单元格,而不是从单元格中读取.更改Numberformat不起作用.看看你是否可以弄清楚这段代码是如何工作的:

dim v as integer
v = val(Sheets("Sheet1").Cells(2, 2))
dim cid as string
cid = format(v, "000")
Run Code Online (Sandbox Code Playgroud)

你永远不应该使用SelectActiveSheet这种方式,它是没有必要的; 并且永远不要使用Cells它应该指的表单.
(Val如果单元格实际上已经是数字而不是文本,则可以省略).


早先回答......:

这段代码对我来说非常好

Worksheets(1).Columns("A").NumberFormat = "@"
Worksheets(1).Cells(1, "A").Value = "00023"
Run Code Online (Sandbox Code Playgroud)

而且也是

Worksheets(1).Columns("A").NumberFormat = "000000"
Worksheets(1).Cells(1, "A").Value = "0023"
Run Code Online (Sandbox Code Playgroud)

(此处字符串将转换为数字并显示为6位数字)

编辑:
如果失败 - 虽然我无法解释 - 我仍然打赌它'应该真的有用 :(
不需要数字格式.)

Dim s As String
s = "0002"
Worksheets(1).Cells(1, "A").Value = "'" & s
Run Code Online (Sandbox Code Playgroud)