2016-06-24 4 views
0

Ich habe eine Tabelle und ich möchte automatisch einen Filter machen und nehmen Sie einige Namen, die ich im Moment nicht brauche. BeispielIch versuche, eine Tabelle zu filtern und aus diesen Filer nehmen einige Namen mit VBA

Name Alter luis 11 carlos 12 jose 13

Ich würde mir gerne einen Filter der Tabelle und nehmen Sie den Namen Carlos und José. Hier ist der Code, den ich habe, aber es funktioniert nicht. Ich bekomme Fehler Anwendung oder edles obeject definiert Fehler

'Naming a range 
Sub sbCreatTable() 
'Create Table in Excel VBA 
ActiveSheet.ListObjects.Add(xlSrcRange, Range("A5:g35"), , xlYes).Name = "myTable1" 
Call sbFilterTable 

End Sub 
Sub sbFilterTable() 
ActiveWorkbook.Sheets("0000_UK").ListObjects("myTable1").Range.AutoFilter field:=1, Criteria1:="france" 
End Sub 

Antwort

0

Dies sollte funktionieren:

Option Explicit 

Sub sbCreateTable() 

Dim ws As Worksheet 
Dim tbl As ListObject 

Set ws = ActiveSheet 
Set tbl = ws.ListObjects.Add(xlSrcRange, Range("F1:G4"), , xlYes) '"A5:g35"), , xlYes) 
tbl.Name = "myTable1" 
sbFilterTable tbl 

End Sub 

Sub sbFilterTable(tbl As ListObject) 

tbl.Range.AutoFilter Field:=1, Criteria1:="Luis" 

End Sub 

Angenommen, Ihre Tabelle ist auf der ActiveSheet. Wenn sich Ihr Tisch immer auf Sheets("0000_UK") befindet, verwenden Sie einfach Set ws = Sheets("0000_UK").

Hinweis: I changed "sbCreatTable()" bis "sbCreateTable()", weil es mich nervt :)

+0

Es funktioniert perfekt! Aber die Sache ist, dass ich eine Liste von Namen habe, die ich rausnehmen möchte, also möchte ich sagen: "Aus dieser Liste hier sind die Namen, die ich nicht auf dem Tisch sehen möchte: Luis, Carlos, also sollte mir der Tisch zeigen nur Jose @theengineer –

+0

Benötigen Sie diese Liste dynamisch? Wenn ja, fragen Sie den Benutzer, um die Namen zu wählen? Und brauchen Sie die Filterung in VBA getan werden? – TheEngineer

+0

Das wäre schön, aber ich kann einfach gehen und Ändern Sie die Namen im Code @theengineer –

Verwandte Themen