Option
Explicit
Sub
Autofilter_Flera_Villkor()
'© 2004
Alla rättigheter XL-Dennis
Dim
wbBook
As
Workbook
Dim
wsSheet
As
Worksheet
Dim
rnData
As
Range, rnData1
As
Range, rnData2
As
Range, rnFinal
As
Range
Dim
rnHead
As
Range
Dim
stCond1
As String,
stCond2
As String,
stCond3
As String
stCond1 =
"AA"
stCond2 =
"BB"
stCond3 =
"CC"
Set
wbBook = ThisWorkbook
Set
wsSheet = wbBook.Worksheets("Blad1")
With
wsSheet
Set
rnHead = .Range("A1:C1")
.Rows(1).Insert
(1)
'Infogar en dummy-rad.
.Range("A1:C1").Value
=
"Data"
'Lägger till dummy-värde.
Set
rnData = .Range(Range("A1"),
.Range("C65536").End(xlUp))
End With
Application.ScreenUpdating =
False
With
rnData
'Selektion utifrån de två första villkoren.
.AutoFilter Field:=1,
Criteria1:=stCond1, _
Operator:=xlOr, Criteria2:=stCond2
Set
rnData1 = .SpecialCells(xlCellTypeVisible)
'Selektion utifrån det tredje villkoret.
.AutoFilter
Field:=1,
Criteria1:=stCond3
Set
rnData2
= .SpecialCells(xlCellTypeVisible)
.AutoFilter
End With
'Sammanfogar cellområdena.
Set
rnFinal = Application.Union(rnHead, rnData1, rnData2)
With
wsSheet
.Rows(1).Delete
'Tar
bort den infogade raden
End With
'Skriver ut cellområdets adress i direktfönstret.
Debug.Print rnFinal.Address
Application.ScreenUpdating =
True
End Sub