Excel宏VBA实现带固定前缀的发票号自动递增需求
修改后的VBA代码实现带前缀的发票号递增
Sub CreateNewInvoice() Const PREFIX As String = "TN2425YP" ' 固定前缀 Dim currentInv As String Dim invNum As Long ' 获取当前发票号,处理空值情况(首次使用默认从1开始) currentInv = Trim(Range("C3").Value) If currentInv = "" Then invNum = 1 Else ' 提取前缀后的数字部分并转换为数值 invNum = CLng(Replace(currentInv, PREFIX, "")) End If ' 清空指定单元格内容 Range("C4:D4,C8:D8,B11:C11,B20:G36").ClearContents ' 计算并显示下一个发票号 Dim nextInv As String nextInv = PREFIX & (invNum + 1) MsgBox "Your next invoice number is " & nextInv ' 修正原拼写错误inovince→invoice ' 更新发票号并保存工作簿 Range("C3").Value = nextInv Range("B11").Select ThisWorkbook.Save End Sub
关键修改说明
- 新增
Const PREFIX As String定义固定前缀,方便后续统一修改前缀内容 - 处理C3单元格为空的场景,首次使用自动从
TN2425YP1开始生成发票号 - 通过
Replace函数剥离前缀,提取数字部分进行递增计算,再重新拼接前缀生成新发票号 - 修正了原代码中MsgBox里的拼写错误(
inovince改为invoice)
内容的提问来源于stack exchange,提问作者Zeez Xerox
相关产品推荐
相关产品推荐

