Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果列中的值低于整数,则使用excel中的VBA在启动时提供警告_Excel_Vba - Fatal编程技术网

如果列中的值低于整数,则使用excel中的VBA在启动时提供警告

如果列中的值低于整数,则使用excel中的VBA在启动时提供警告,excel,vba,Excel,Vba,我有一个包含多个工作表的excel文档。其中一张工作表的标题为“库存”。它跟踪我们每种产品的数量以及这些产品何时过期。在其中一列中,它列出了我们拥有的每种材料的“到期日”。我想编写一个VBA脚本,以便每次打开excel文件时,脚本都会运行并检查“过期天数”列中的所有值。如果列中有一个值在到期后14天内,我希望在excel文件启动时弹出脚本,并说类似“材料在到期前还有几天”。请告知。 < P>假设到期日在D栏,请考虑以下代码添加到您的代码> WorkBooOrg.Open/Case>事件: Pri

我有一个包含多个工作表的excel文档。其中一张工作表的标题为“库存”。它跟踪我们每种产品的数量以及这些产品何时过期。在其中一列中,它列出了我们拥有的每种材料的“到期日”。我想编写一个VBA脚本,以便每次打开excel文件时,脚本都会运行并检查“过期天数”列中的所有值。如果列中有一个值在到期后14天内,我希望在excel文件启动时弹出脚本,并说类似“材料在到期前还有几天”。请告知。

< P>假设到期日在D栏,请考虑以下代码添加到您的代码> WorkBooOrg.Open/Case>事件:

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=)