如果列中的值低于整数,则使用excel中的VBA在启动时提供警告
我有一个包含多个工作表的excel文档。其中一张工作表的标题为“库存”。它跟踪我们每种产品的数量以及这些产品何时过期。在其中一列中,它列出了我们拥有的每种材料的“到期日”。我想编写一个VBA脚本,以便每次打开excel文件时,脚本都会运行并检查“过期天数”列中的所有值。如果列中有一个值在到期后14天内,我希望在excel文件启动时弹出脚本,并说类似“材料在到期前还有几天”。请告知。 < P>假设到期日在D栏,请考虑以下代码添加到您的代码> WorkBooOrg.Open/Case>事件:如果列中的值低于整数,则使用excel中的VBA在启动时提供警告,excel,vba,Excel,Vba,我有一个包含多个工作表的excel文档。其中一张工作表的标题为“库存”。它跟踪我们每种产品的数量以及这些产品何时过期。在其中一列中,它列出了我们拥有的每种材料的“到期日”。我想编写一个VBA脚本,以便每次打开excel文件时,脚本都会运行并检查“过期天数”列中的所有值。如果列中有一个值在到期后14天内,我希望在excel文件启动时弹出脚本,并说类似“材料在到期前还有几天”。请告知。 < P>假设到期日在D栏,请考虑以下代码添加到您的代码> WorkBooOrg.Open/Case>事件: Pri
Private Sub Workbook_Open()
Dim wb As Workbook
Dim ws As Worksheet
Dim rngUsed As Range, rngExpirationColumn As Range, rngCell As Range
Dim strExpirationMessage As String
Set wb = ThisWorkbook
Set ws = wb.Sheets("Inventory")
Set rngUsed = ws.UsedRange
Set rngExpirationColumn = Intersect(ws.Columns(4), rngUsed)
For Each rngCell In rngExpirationColumn.Cells
If Date - CDate(rngCell.Value2) >= 14 Then
If Len(strExpirationMessage) = 0 Then
strExpirationMessage = rngCell.Offset(0, -3).Value2 & " material has " & (Date - CDate(rngCell.Value2)) & " days left before expiration"
Else
strExpirationMessage = strExpirationMessage & Chr(13) & rngCell.Offset(0, -3).Value2 & " material has " & (Date - CDate(rngCell.Value2)) & " days left before expiration"
End If
End If
Next
MsgBox strExpirationMessage
End Sub
你的问题不够具体,有很多不同的方法。你试过什么?请看和。请看新修订的问题检查事件Bruce是否正确。在“ThisWorkbook”上的Microsoft Excel对象(在vba中)下,有一个工作簿(对象)打开(操作),该工作簿打开时将运行代码。将您的vba代码放在那里。也就是说,您的值列表也可以使用一个条件格式公式,与今天的日期进行比较,并将有问题的值格式化为带亮黄色背景的粗体红色-不涉及vba=)