首页 > 解决方案 > VBA excel:按日期过滤并将Criteria2值分配给变量?

问题描述

我有一个表格,其中有一列包含我要过滤的日期。我正在尝试获取标准值并将其分配给一个变量,但一直遇到错误。(运行时错误“1004”:应用程序定义的或对象定义的错误)。任何人都可以帮忙吗?

过滤代码:

ActiveSheet.ListObjects("MyTbl").Range.AutoFilter Field:=5, _
    Operator:=xlFilterValues, Criteria2:=Array(0, "10/1/2017")

我的代码:

Dim x As Variant

If Table.AutoFilter.Filters(5).On Then

    x = Table.AutoFilter.Filters(5).Criteria2
    
End If

标签: arraysexcelvbafiltercriteria

解决方案


这是你正在尝试的吗?

假设我们的数据看起来像这样

在此处输入图像描述

我的表名是Table1,它在Sheet1. 根据需要更改以下代码。

代码

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim Table As ListObject
    
    Dim x As Variant
    Dim Ar(1 To 3) As Date
    
    Ar(1) = DateSerial(2017, 1, 10)
    Ar(2) = DateSerial(2017, 2, 13)
    Ar(3) = DateSerial(2017, 2, 15)
    
    Set ws = Sheet1
    Set Table = ws.ListObjects("Table1")
    
    With Table
        .Range.AutoFilter Field:=5, Operator:=xlFilterValues, Criteria1:=Ar
         
         x = Join(Table.AutoFilter.Filters(5).Criteria1, ",")
         
         MsgBox x
    End With
End Sub

在行动

在此处输入图像描述


推荐阅读