thumb 10 Geschrieben 2. Juli 2014 Melden Teilen Geschrieben 2. Juli 2014 Hallo zusammen, ich kenne die Referenz http://msdn.microsoft.com/de-de/library/office/ff193884(v=office.15).aspx , schaffe es aber nicht, dies in VBS umzusetzen. Mein Code ist objWorkbook.Worksheets(1).Range("D1").Autofilter 4, "Fulfillment sub-task" Mein Wunsch ist, dem Kriterium "Fulfillment sub-task" weitere hinzuzufügen (ODER verknüpft). Habt ihr einen Tipp für mich? Besten Dank und viele Grüße, thumb Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 2. Juli 2014 Melden Teilen Geschrieben 2. Juli 2014 Hi, wenns nur 2 Kriterien sein sollen z.B.: WorkSheets(1).Range("D1").Autofilter 4, "1.Kriterium", xlOR, "2.Kriterium" wenns mehr sein sollen: ...Autofilter Field:=4, Criteria:=Array("Krit1","Krit2","Krit3"), Operator:=xlFilterValues zu beachten: wenn Du als Range "D1" angibst, ist das 4.Feld, auf das gefiltert wird, Spalte G! Zitieren Link zu diesem Kommentar
thumb 10 Geschrieben 2. Juli 2014 Autor Melden Teilen Geschrieben 2. Juli 2014 Hallo Cybquest, besten Dank für Deine schnelle Antwort. Ich erhalte leider den Laufzeitfehler: ---------------------------Windows Script Host---------------------------Skript: H:\Documents\LSN\Gewerk Engineering\Abrechnung\Entwurf\TrackSpaceExport\ColumnCleanUp-V0.6.vbsZeile: 88Zeichen: 1Fehler: Die AutoFilter-Methode des Range-Objektes konnte nicht ausgeführt werden.Code: 800A03ECQuelle: Microsoft Excel ---------------------------OK --------------------------- Mein Code lautet: objWorkbook.Worksheets(1).Range("F1").Autofilter 4, "Done", xlOR, "Withdrawn" Was den OffSet anbelangt - der Filter liegt auf D1, wenn ich folgenden Code verwende: objWorkbook.Worksheets(1).Range("D1").Autofilter 4, "Fulfillment sub-task" Besten dank und viele Grüße, thumb Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 2. Juli 2014 Melden Teilen Geschrieben 2. Juli 2014 Ach das ist VBS, nicht VBA... Dann musst Du für die Konstante xlOR die 2 nehmen, würde ich sagen. zum Offset: wenn Du z.B. wirklich mit nem Range arbeitest und nicht nur mit einem Feld, ist der Autofilter auch wirklich nur in dem Range aktiv und darin entscheidet dann das Feld, welche Spalte gefiltert wird! Bsp: Du hast 10 Spalten hübsch befüllt mit Spaltenköpfen. Machst Range("D1:J1"), dann sind die Filterknöpfe nur dort. Der Parameter 4 würde dann allerdings den Filter auf G1 setzen! Kannst ja zum testen den Code (ohne das "objWorkbook") in ein Excel-Makro packen und ausführen... Über Makro aufzeichnen kommst so z.B. auch zu der Array-Variante ;) Zitieren Link zu diesem Kommentar
thumb 10 Geschrieben 3. Juli 2014 Autor Melden Teilen Geschrieben 3. Juli 2014 Hallo Cybquest, danke Dir - leider ist die Syntax in VBS eine andere, das von Dir vorgschlagene funktioniert in VBS (jedenfalls bei mir) nicht... Viele Grüße, thumb Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 3. Juli 2014 Melden Teilen Geschrieben 3. Juli 2014 (bearbeitet) Const xlOR = 2 Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("MeineExcel.xls") objExcel.Visible = true objWorkbook.Worksheets(1).Range("D1").Autofilter 4, "Erledigt", xlOR, "in Arbeit" So hab ich's grad getestet und das funktioniert! In meiner Excel hab ich in Spalte D Aufträge, E und F Beschreibungen etc. und G den Status mit "Erledigt", "offen", "in Arbeit"... Const xlFilterValues = 7 ... objWorkbook.Worksheets(1).Range("D1").Autofilter 4, Array("Erledigt","in Arbeit","zurückgestellt"), xlFilterValues und das funktioniert auch... bearbeitet 3. Juli 2014 von Cybquest 1 Zitieren Link zu diesem Kommentar
thumb 10 Geschrieben 3. Juli 2014 Autor Melden Teilen Geschrieben 3. Juli 2014 Hallo Cybquest, ja, Du hast Recht, es funktioniert so, wie von Dir beschrieben! Ich war wohl zu schusselig um mit Konstanten zu arbeiten, sorry..... Herzlichen Dank für Deine Hilfe. Viele Grüße, thumb Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 3. Juli 2014 Melden Teilen Geschrieben 3. Juli 2014 Gern geschehen :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.