Ich habe ein Problem mit AutoFilter mit VBA in Excel.
Es funktioniert gut für reguläre Filter, aber das Filtern der Datumsspalte funktioniert nicht wie vorgesehen. Die Spalte ist als Datum formatiert, ich kann es manuell und absurd filtern, wenn ich meinen Code ausführe, filtert es nichts, aber wenn ich den Filter überprüfe und dann nur auf ok klicke (keine Änderung der Filterkriterien), beginnt es richtig zu filtern .
Hier ist mein Code:
%Vor%Jeder hat eine Idee? Es scheint ein häufiges Problem zu sein, aber ich habe keine Lösung gefunden.
Vielen Dank im Voraus.
Bearbeiten: Nur hinzufügen, wenn ich es aufzeichnen und das aufgezeichnete Makro ausführen, funktioniert es auch nicht.
Daten können mit Excel VBA AutoFilter schwierig sein. Einige finden es einfacher, das zu filternde Array durchzulaufen.
Manchmal habe ich festgestellt, dass man den numerischen Wert des Datums verwenden kann, besonders wenn es um "Daten zwischen"
geht %Vor%Beachten Sie, dass die obigen Angaben "echte Daten" sein müssen und keine Zeichenfolgen, die nach Daten aussehen. Selbst ein einzelnes "String Date" wird die Sache durcheinander bringen.
Autofilter()
arbeitet mit dem 'universellen' Format yyyy-mm-dd
, d.h.:
Es ist besser, weil Excel es nicht "verstehen" kann. Wenn Sie mm/dd/yyyy
oder dd/mm/yyyy
Excel verwenden, können Sie 02 / jan als 01 / Februar einfügen.
siehe: Ссылка
Die Regeln für die Arbeit mit Excel ( International Issue )
- Wenn Sie Zahlen und Datumsangaben in Zeichenfolgen für die Übergabe an Excel konvertieren müssen (z. B. in Kriterien für AutoFilter- oder .Formula-Zeichenfolgen), konvertieren Sie die Daten immer explizit in eine US-formatierte Zeichenfolge mit Trim (Str (MyNumber)). oder die zuvor gezeigte Funktion sNumToUS () für alle Zahlen- und Datumstypen. Excel wird es dann korrekt verwenden und in die lokalen Zahlen- / Datumsformate konvertieren.
Bearbeiten:
Wir können eine universelle Funktion mit Application.International
like:
Sie müssen das Format in das amerikanische Format konvertieren, wie: "& gt;" &Ampere; Format ([Datumzelle], "MM / TT / JJJJ") VBA versteht kein anderes Format.
Diese Syntax funktioniert für mich:
%Vor%Hinweis erhalten durch eine Makro-Registrierung
Tags und Links vba excel date autofilter