基于数组的VBA自动过滤动态日期
我一直在尝试创建sub,它创建了一个日期数组,用于基于动态数组应用自动筛选,但在应用筛选时出错 “范围类的自动筛选方法失败” 工作罚款如果我应用手动创建的数组基于数组的VBA自动过滤动态日期,vba,Vba,我一直在尝试创建sub,它创建了一个日期数组,用于基于动态数组应用自动筛选,但在应用筛选时出错 “范围类的自动筛选方法失败” 工作罚款如果我应用手动创建的数组 Private Sub CreateDateArayy() Dim myArray() As Variant Dim PreRng, PostEng As Range Dim src, tgt As Worksheet Set tgt = Worksheets("Main") Dim CellCount, x As Integer Cel
Private Sub CreateDateArayy()
Dim myArray() As Variant
Dim PreRng, PostEng As Range
Dim src, tgt As Worksheet
Set tgt = Worksheets("Main")
Dim CellCount, x As Integer
CellCount = 0: x = 0:
Set PreRng = tgt.Range("C2:C16")
For Each cell In PreRng
If cell.Value <> "" Then
CellCount = CellCount + 1
End If
Next cell
ReDim myArray(CellCount * 2)
For Each cell In PreRng
If cell.Value <> "" Then
myArray(x) = 2
myArray(x + 1) = cell.Value
x = x + 2
End If
Next cell
d = testfilter(myArray)
End Sub
Function testfilter(dates As Variant)
Dim sht As Worksheet
Set sht = Worksheets("Daily Data")
sht.AutoFilterMode = False
sht.UsedRange.AutoFIlter Field:=2, Operator:=xlFilterValues, Criteria2:=dates
End Function
Private子CreateDateArayy()
Dim myArray()作为变量
变光前照,后照范围
Dim src,tgt作为工作表
设置tgt=工作表(“主”)
Dim CellCount,x为整数
CellCount=0:x=0:
设置预燃=温度范围(“C2:C16”)
对于PreRng中的每个单元格
如果单元格的.Value为“”,则
CellCount=CellCount+1
如果结束
下一个细胞
ReDim myArray(CellCount*2)
对于PreRng中的每个单元格
如果单元格的.Value为“”,则
myArray(x)=2
myArray(x+1)=单元格值
x=x+2
如果结束
下一个细胞
d=测试过滤器(myArray)
端接头
函数testfilter(日期作为变量)
将sht变暗为工作表
Set sht=工作表(“每日数据”)
sht.AutoFilterMode=False
sht.UsedRange.AutoFIlter字段:=2,运算符:=xlFilterValues,准则2:=dates
端函数
已通过更改行解决
ReDim myArray(CellCount * 2)
到
ReDim myArray(CellCount * 2 - 1)