Is it possibe to declare the "critereia range" as a VBA variable? I know how to use VBA to extract data using advanced filters but thought that this may be an interesting alternative.
Example of code:
oRng.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=ThisWorkbook.Sheets("Sheet2").Range("P2:P3"), _
CopyToRange:=ThisWorkbook.Sheets("Sheet2").Range("A2"), Unique:=True
In the example above the "criteria range" is set to the range P2:P3 within the sheet. Pehaps something like: CriteriaRange:="Depts,1234"
Regards,
John
Advanced Filter Criteria
-
- GoldLounger
- Posts: 2631
- Joined: 26 Jan 2010, 16:31
- Location: Southern California
Advanced Filter Criteria
Regards,
John
John
-
- 3StarLounger
- Posts: 392
- Joined: 25 Jan 2010, 12:21
Re: Advanced Filter Criteria
Something like this?
Dim rDepts1234 as range
rDepts1234 = ThisWorkbook.Sheets("Sheet2").Range("P2:P3")
oRng.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rDepts1234, _
CopyToRange:=ThisWorkbook.Sheets("Sheet2").Range("A2"), Unique:=True
Steve
Dim rDepts1234 as range
rDepts1234 = ThisWorkbook.Sheets("Sheet2").Range("P2:P3")
oRng.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rDepts1234, _
CopyToRange:=ThisWorkbook.Sheets("Sheet2").Range("A2"), Unique:=True
Steve
Last edited by sdckapr on 15 Mar 2010, 21:38, edited 1 time in total.
-
- Administrator
- Posts: 78790
- Joined: 16 Jan 2010, 00:14
- Status: Microsoft MVP
- Location: Wageningen, The Netherlands
Re: Advanced Filter Criteria
In addition to Steve's reply: the CriteriaRange argument *must* be a reference to a literal range or to a named range, either directly or through a variable as in Steve's example. It cannot be an array.
Best wishes,
Hans
Hans