Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于数组的VBA自动过滤动态日期_Vba - Fatal编程技术网

基于数组的VBA自动过滤动态日期

基于数组的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

我一直在尝试创建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
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)