今天跟大家分享下,我们如实使用AI编写VBA代码,来制作一个合同到期提醒,它最大的优势就是打开Excel,能自动显示弹窗,提醒我们有哪些合同即将到期,也是我心目中最完美的到期提醒方式

一、准备数据
首先我们需要整理下自己的合同管理数据,最好是把数据设置为一维表,一行他就是一条合同数据,不要添加合并单元格啥的,一维表写代码更加方便,正确率更高,表格中最好包含合同的开始与截止日期,让代码的判断逻辑更加清晰

二、编写代码
我们需要来到Deepseek中,将自己需要的合同到期提醒效果发送给它,这些都可以根据自己的需求来定制,最后一定记得将自己的表格格式告诉Deepseek,开始时间,结束时间,需要在窗口中显示的内容都在哪里,让它了解的你的表格格式,才能获取一个正确的代码,如果你觉得无从下手,也可以参考我的提示词,稍等下应该就能生成代码

三、代码展示
Private Sub Workbook_Open()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("合同管理")Dim lastRow As LongDim reminderMsg As StringDim i As LonglastRow = ws.Cells(ws.Rows.Count, "D").End(xlUp).RowreminderMsg = "以下合同将在7天内到期:" & vbNewLineApplication.ScreenUpdating = Falsews.Range("A2:G" & lastRow).Interior.Pattern = xlNone ' 清除原有颜色For i = 2 To lastRowIf IsDate(ws.Cells(i, 4).Value) ThenDim daysLeft As LongdaysLeft = DateDiff("d", Date, ws.Cells(i, 4).Value)' 已过期合同处理If ws.Cells(i, 4).Value < Date Thenws.Range("A" & i & ":G" & i).Interior.Color = RGB(255, 0, 0) ' 整行红色[1,6](@ref)' 7天内到期处理ElseIf daysLeft <= 7 And daysLeft > 0 Thenws.Range("A" & i & ":G" & i).Interior.Color = RGB(255, 255, 0) ' 整行黄色[8](@ref)reminderMsg = reminderMsg & "合同编号:" & ws.Cells(i, 2).Value & _"(剩余" & daysLeft & "天)" & vbNewLineEnd IfEnd IfNext iApplication.ScreenUpdating = TrueIf Len(reminderMsg) > 30 Then ' 判断是否需要弹窗MsgBox reminderMsg, vbInformation, "合同到期提醒"End IfEnd Sub
四、使用方法
我们只需要复制下代码,然后按下快捷键ALT+F11调出vba的窗口,然后在有的找到【ThisWorkbook】双击,之后在右侧的空白窗口中直接粘贴代码即可
想要保存宏代码是需要将文件另存为【xlsm】格式的,保存后,第一次需要启用宏,启用后以后打开就会弹出提示

五、参考视频
想学跟我Excel,可以在下方了解下我的课程,函数、透视表、图表、数据看板、AI都有,购买后免费答疑,点击下方链接了解详情

Excel系列课程(Deepseek、函数、透视表、图表、数据看板)

END