所有
我试图根据从另一张纸张输入的一系列数据来过滤工作表上的项目。我当前的宏仅根据该范围内的第一个单元格进行过滤。
我希望根据其过滤的范围每天都会改变。有些日子它可能是3个项目,有时可能是7个。所以我无法让过滤器查看4个特定单元格。
以下是我目前所拥有的内容,我不确定为什么它不是基于所有4个单元格进行过滤,而是仅基于该范围内的第一个单元格进行过滤。
Dim POinput As Range, cell As Range
Dim lrow As Integer
Dim arrList() As String, lngcnt As Long
With Sheets("Control")
lrow = Range("A50").End(xlUp).Row
Set POinput = .Range("A5:A" & lrow)
End With
lngcnt = 0
For Each cell In POinput
ReDim Preserve arrList(lngcnt)
arrList(lngcnt) = cell.Text
lngcnt = lngcnt + 1
Next
Sheets("ACTOpenItems").Select
ActiveSheet.Range("A1:FH" & lastrow).AutoFilter Field:=2, Criteria1:=arrList, _
Operator:=xlFilterValues
例如,假设我已在" Control"中输入了数据。选项卡1和3,因为这些是我要在" ACTOpenItems"的B列中过滤的项目。标签
ACTOpenItems标签看起来像这样。
类型/帐户/金额
狗/ 1/100
Cat / 2/150
Bird / 3/200
狗/ 4/250
Cat / 1/300
Bird / 2/350
Dog / 3/400
Cat / 4/450
Bird / 1/500
Dog / 2/550
Cat / 3/600
Bird / 4/650
我想要的结果。
类型/帐户/金额
狗/ 1/100
Bird / 3/200
Cat / 1/300
Dog / 3/400
Bird / 1/500
Cat / 3/600
提前感谢您的帮助。
答案 0 :(得分:0)
我发现了错误。在代码中犯了一个小错误。应该有一个“。”在我的范围之前。现在修好了。只是想发布更新以防任何人想要做同样的事情。
这个
With Sheets("Control")
lrow = Range("A50").End(xlUp).Row
应该是这个
With Sheets("Control")
lrow = .Range("A50").End(xlUp).Row