2017-02-14 10 views
0

Ich habe einen dynamischen Listenbereich für meinen erweiterten Filter erstellt. Ich habe einen Namen namens "Data" erstellt. Wenn ich versuche, den Namen in die VBA-Formel einzugeben, erhalte ich einen Fehler. Die dynamischen Namen funktionieren für die Kriterien und den Ausgabebereich?Erweiterter Filter Excel VBA

Range("Sheet2!Data").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _ 
     ("Sheet2!Filter"), CopyToRange:=Range("Sheet2!Location"), Unique:=False 

Ich erhalte die folgenden Laufzeitfehler '1004':

Methode 'Range' von object'_Global‘failed

Antwort

3

Wenn Ihr Benannte Bereiche Spielraum für Sheet2 ist nur, dann müssen Sie die Range mit Worksheets("Sheet2") vollständig qualifizieren, wie in dem folgenden Code:

Bei Geltungsbereich Ihre Benannte Bereiche ist Workbook dann verwenden Sie den Code unten (es gibt keine Notwendigkeit, die Range mit dem Worksheet zu qualifizieren.):

Range("Data").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("Filter"), _ 
       CopyToRange:=Range("Location"), Unique:=False 
+0

Oder 'Sheets ("Tabelle2") Range ("Data") .AdvancedFilter Aktion: = xlFilterCopy, CriteriaRange: =. Bereich ("Filter"), CopyToRange: =. Bereich ("Location"), Unique: = False' –

+0

Aus welchem ​​Grund auch immer es den Namen nicht erkennt. Ich habe eine Offset-Formel für alle 3 Namen erstellt. Daten, Filter und Standort Aber Code stürzt ab, wenn ich Daten verwende. Der Bereich, den ich verwende, ist A11: N1000, aber ich kann Spalten und Zeilen hinzufügen, also möchte ich es dynamisch machen. Könnte es möglich sein, eine letzte Zeile oder den letzten Spaltenbereich zu haben? – Jeff