使用数组、MS Excel进行自动筛选的条件

使用数组、MS Excel进行自动筛选的条件,excel,vba,autofilter,Excel,Vba,Autofilter,我创建了一个使用自动筛选删除行的模块,条件是Min date 问题是,当我创建一个数组来定义条件时,自动筛选不起作用。是否有任何方法可以解决此问题 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

我创建了一个使用自动筛选删除行的模块,条件是Min date

问题是,当我创建一个数组来定义条件时,自动筛选不起作用。是否有任何方法可以解决此问题

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
  • 您可以修改代码以获取您的最小日期值:arr=Sheet4.Range(“A2”).value
  • 在Excel的过滤器中,在VBA中,您必须以英文格式发送日期并添加条件。 =>标准1:=“>”和格式(arr,“mm/dd/yy”)
  • 子删除_行()


    末端接头

    arr会是一种变体吗?如果您希望它是一个数组。我也使用过,但它也不起作用(在图3中:arr值是#05/09/2020#>>不是我在工作表中使用的格式),请尝试
    Criteria1:=Application.Transpose(arr)
    Dim lo As ListObject
    Dim arr As Variant
    arr = Sheet4.Range("A2").value
    
    Set lo = Sheet1.ListObjects(1)
    lo.Range.AutoFilter Field:=2, Criteria1:=">" & Format(arr, "mm/dd/yy"), Operator:=xlFilterValues
    Application.DisplayAlerts = False
    lo.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
    lo.AutoFilter.ShowAllData