Skapa filtrerade listor
Här visas ett exempel på hur vi relativt enkelt och generellt kan filtrera listor mha av VBA. Resultatet för exemplet blir en unik lista.
Se också Skapa unik lista med villkor
Option Explicit
Sub Skapa_Filtrerad_Lista()
'© 2002 Alla rättigheter XL-Dennis
Dim wbBok As Workbook
Dim wsBlad1 As Worksheet, wsBlad2 As Worksheet
Dim rnKalla As Range, rnMal As Range
Set wbBok = ThisWorkbook
Set wsBlad1 = wbBok.Worksheets("Blad1")
Set wsBlad2 = wbBok.Worksheets("Blad2")
'Tilldelar variabeln rnKalla A-kolumnens ifyllda cellområde.
With wsBlad1
Set rnKalla = .Range(.Range("A1"), .Range("A65536").End(xlUp))
End With
With wsBlad2
Set rnMal = .Range("A1")
End With
Application.ScreenUpdating = False
'Filtrerar listan på plats.
rnKalla.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
'Definierar om variabeln rnKalla så att den nu omfattar hela tabellen.
With wsBlad1
Set rnKalla = .Range(.Range("A1"), .Range("B65536").End(xlUp))
End With
'Ta bort all data från målområdet.
rnMal.CurrentRegion.ClearContents
'Kopierar den unika listan.
rnKalla.SpecialCells(xlCellTypeVisible).Copy Destination:=rnMal
'Återställer den ursprungliga listan.
wsBlad1.ShowAllData
Application.ScreenUpdating = False
End Sub