【问题标题】:Keeping/inserting leading 0's保持/插入前导 0
【发布时间】: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= 的开头添加了 ("'"&...),现在一切正常

标签: vba excel


【解决方案1】:

这是一种将前导零放入数字的方法:

Sub LeadingZerosNumbers()
    Dim N As Long

    N = 1137

    Range("A1").Value = N
    Range("A1").NumberFormat = "000000"
End Sub

这是一种将前导零放入看起来像数字的文本的方法:

Sub LeadingZerosText()
    Dim N As Long

    N = 1137

    Range("A1").NumberFormat = "@"
    Range("A1").Value = "00" & N

End Sub

在这两种情况下 A1 都会显示:

【讨论】:

  • 谢谢! jobNum = ("'" & Left(r1.Cells(1, 1), 6)) 设法让它工作
猜你喜欢
  • 1970-01-01
  • 2019-02-12
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多