Excel VBA Autofilter arbeitet nicht mit der Datumsspalte

7

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.

    
Spurious 04.11.2013, 11:44
quelle

6 Antworten

9

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.

    
Ron Rosenfeld 04.11.2013, 12:43
quelle
7

Autofilter() arbeitet mit dem 'universellen' Format yyyy-mm-dd , d.h.:

%Vor%

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 )

     
  1. 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.
  2.   

Bearbeiten:

Wir können eine universelle Funktion mit Application.International like:

erstellen %Vor%     
Makah 06.08.2015 21:13
quelle
2

Sie müssen das Format in das amerikanische Format konvertieren, wie: "& gt;" &Ampere; Format ([Datumzelle], "MM / TT / JJJJ") VBA versteht kein anderes Format.

    
Karlos Henrique 22.05.2014 15:12
quelle
1

Diese Syntax funktioniert für mich:

%Vor%

Hinweis erhalten durch eine Makro-Registrierung

    
Mago Fabian 29.04.2016 14:35
quelle
0

Karlos Henrique, Danke, dass Sie Format vorgeschlagen haben ([datecell], "mm / dd / yyyy"). Es funktioniert in meiner Datei. Mein vorheriger Code ist:

%Vor%

Mein geänderter Code ist:

%Vor%

Danke.

    
pmyk 14.06.2014 05:59
quelle
0

Passen Sie Ihr "TT-MM-JJJ" an das Format der Spalte an, wenn Sie also "16-Aug-16" als Quelldatenformatierung haben, dann machen Sie den Filter als "dd-mmm-yy"

    
Graham P 16.08.2016 08:28
quelle

Tags und Links