gpt4 book ai didi

vba - Excel VBA - 日期过滤器和空白

转载 作者:行者123 更新时间:2023-12-04 21:35:33 25 4
gpt4 key购买 nike

我正在使用 VBA 制作日期过滤器。此过滤器将采用我在工作表 1 中指定的日期,并过滤我目前选择的列。理想情况下,我希望所有值都在该范围内加上所有空白(没有定义日期)。

Set rep= ActiveWorkbook.Sheets("sheet2")
Set sh1 = ActiveWorkbook.Sheets("Sheet1")

Dim anf As String
Dim ende As String
Dim count As Integer

anf = ">=" + sh1.Range("J2")
ende = "<=" + sh1.Range("J3")
rep.Select
count = Range(Selection, Selection.End(xlToLeft)).Columns.count

rep.Range("$A$4:$GD$11668").AutoFilter Field:=count, Criteria1:=anf, Operator:=xlAnd, Criteria2:=ende, Operator _
:=xlFilterValues

这段代码运行得很漂亮。但是,它只过滤日期。我尝试添加空白(除此之外)也失败了。

例如,为空白添加第三个标准:
rep.Range("$A$4:$GD$11668").AutoFilter Field:=count, Criteria1:=anf, Operator:=xlAnd, Criteria2:=ende, Operator:=xlAnd, Criteria3:="=", Operator _
:=xlFilterValues

我收到应用程序定义或对象定义错误。

有任何想法吗?谢谢!

最佳答案

您不能以这种方式同时执行 3 个以上的标准 - 如果您在用户界面中注意到您只能同时获得 2 个“和”或任何标准。

enter image description here

但是,您可以创建一个数组并将其设置为标准。引用 this example

试试下面的例子
enter image description here

Sub Sample()
Dim SampleRange As Range
Dim ArrayDates(2) As Date
ArrayDates(0) = "1-1-2017"
ArrayDates(1) = "1-2-2017"
ArrayDates(2) = Now()
'1st approach, add the array directly in the criteria
Set SampleRange = Range("A1:A31")
SampleRange.AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria1:=Array(2, "1/1/2017", 2, "1/2/2017", 2, "1/3/2017")
'2nd approach: define an array and just start to call it as needed
SampleRange.AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria1:=Array(ArrayDates(1))

End Sub

关于vba - Excel VBA - 日期过滤器和空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39082118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com