如何用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
相关产品推荐
相关产品推荐

