VBA 检查表格列并提醒:日期小于20天

本文介绍如何使用VBA代码检查名为'2023年汇总表'的工作表中,特定列的值是否符合以下条件:

  1. 列AE为'抵押'。
  2. 列X为'非空值'。
  3. 列AD为'空值'。

如果以上条件都满足,则继续检查列X中的日期值与当前日期的差值,如果小于20天则跳转到对应单元格并提示。

以下是使用VBA编写的代码:

Sub CheckColumns()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim currentDate As Date
    Dim cell As Range
    
    ' 设置工作表
    Set ws = ThisWorkbook.Worksheets('2023年汇总表')
    
    ' 获取最后一行
    lastRow = ws.Cells(ws.Rows.Count, "AE").End(xlUp).Row
    
    ' 获取当前日期
    currentDate = Date
    
    ' 遍历每一行
    For Each cell In ws.Range("AE2:AE" & lastRow)
        ' 检查条件
        If cell.Value = '抵押' And cell.Offset(0, 22).Value <> '' And cell.Offset(0, 30).Value = '' Then
            ' 检查日期差
            If cell.Offset(0, 22).Value - currentDate < 20 Then
                ' 跳转到单元格并提示
                cell.Offset(0, 22).Select
                MsgBox '该单元格日期小于20天!'
                Exit Sub ' 如果只需要检查第一个符合条件的单元格,可以注释掉这行
            End If
        End If
    Next cell
    
    ' 如果没有符合条件的单元格
    MsgBox '没有符合条件的单元格!'
End Sub

使用方法:

  1. 打开Excel工作簿并按下Alt + F11进入VBA编辑器。
  2. 在VBA编辑器中,插入一个新的模块(Insert -> Module)。
  3. 将上述代码复制到模块中。
  4. 修改代码中的工作表名称('2023年汇总表')为你的实际工作表名称。
  5. 点击运行按钮(F5)或者按下Alt + F8,选择“CheckColumns”宏并运行。

注意:

  • 代码中的列号(AE、X、AD)请根据实际情况调整。
  • 代码中的'抵押'和'空值'等字符串请根据实际需要修改。
  • 如果需要检查所有符合条件的单元格,请取消代码中 Exit Sub 注释。

希望这篇文章能帮助你解决问题。如有任何疑问,请随时留言。


原文地址: https://www.cveoy.top/t/topic/qCx9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录