需求
在Excel中打印后,将某个栏位数据自动+1。比如需要修改栏位数据为xxx-xx-1,打印后变为xxx-xx-2
实现:
- 打开Excel文件并按下Alt + F11打开VBA编辑器。
- 在VBA编辑器中,找到您的工作簿名称,比如VBAProject (YourWorkbookName)。
- 双击打开此工作簿下的 ThisWorkbook 项目。
- 在打开的代码窗口中,粘贴下面的代码:具体栏位和数据格式根据实际情况修改
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False '不触发BeforePrint事件
Call PR
Application.EnableEvents = True
Cancel = True '取消打印
End Sub
Sub PR()
Dim oldValue As String
oldValue = Range("B6").Value
ActiveSheet.PrintOut
Dim arr() As String
arr = Split(oldValue, "-")
Dim lastPart As String
lastPart = arr(UBound(arr))
Dim newValue As Integer
newValue = CInt(lastPart) + 1
Range("B6").Value = Left(oldValue, Len(oldValue) - Len(lastPart)) & newValue
End Sub
6.保存VB代码时,可能会出现提示,选择“返回”,然后修改文件类型为.xlsm