使用Array自动筛选的条件,MS Excel

问题描述

我创建了一个模块,用于使用自动过滤器删除行,并且条件为“最小日期”,

Picture 1

Picture 2

Picture 3

问题是当我创建定义条件的数组时AutoFilter不起作用。反正有解决此问题的方法

Sub Delete_Rows()
    Dim lo As ListObject
    Dim arr As Variant
    arr = Sheet4.Range("A2")

    Set lo = Sheet1.ListObjects(1)
    lo.Range.AutoFilter Field:=2,Criteria1:=arr,Operator:=xlFilterValues
    Application.displayAlerts = False
    lo.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
    Application.displayAlerts = True
    lo.AutoFilter.ShowAllData
End Sub

解决方法

  1. 您可以修改代码以获取最小日期的值: arr = Sheet4.Range(“ A2”)。value
  2. 在Excel的过滤器中,必须在VBA中以英语格式发送日期并添加条件。 => 标准1:=“>”&格式(arr,“ mm / dd / yy”)

Sub Delete_Rows()

out

结束子