You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel VBA生成带前导零的YY####格式发票编号

解决Excel VBA发票编号(YY####格式)问题

方案1:单元格仅存数字序号(推荐)

如果E5单元格只存储数字序号(初始值可设为0),直接通过Format函数将数字补前导零后拼接年份即可:

Sub Invoice()
    Dim inv As Long
    inv = Range("e5").Value
    ' 生成YY####格式:年份取当前年后两位,数字部分补前导零至4位
    Range("e5").Value = Format(Now(), "yy") & Format(inv + 1, "0000")
End Sub
  • Format(inv + 1, "0000")会自动给不足4位的数字补前导零:比如输入0生成0001,输入12生成0012,输入1234保持1234。
  • 建议把E5单元格设置为文本格式(右键单元格→设置单元格格式→文本),避免Excel自动省略前导零。

方案2:单元格已存完整发票号

如果E5已经存储了完整的发票号(比如230001),需要先提取数字部分再更新:

Sub Invoice()
    Dim currentInv As String
    Dim numPart As Long
    currentInv = Range("e5").Value
    ' 提取发票号的后4位数字
    numPart = CLng(Right(currentInv, 4))
    ' 生成新发票号,若要沿用原年份,把Format(Now(), "yy")改成Left(currentInv, 2)
    Range("e5").Value = Format(Now(), "yy") & Format(numPart + 1, "0000")
End Sub

内容的提问来源于stack exchange,提问作者tlw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:29:53