Porównanie dat w VBA

Porównanie dat w VBA.

Określenie typu

Konieczne jest przekonwertowanie dat na typ danych "Data" w celu dokonania porównań, jeśli są już w tym typie. Możesz wiedzieć, czy zmienna to "Date", używając kilku metod. Przejrzyj sekcję deklaracji na początku procedury VBA. Ta sekcja jest częścią, w której deklarujesz wszystkie zmienne za pomocą słowa kluczowego "Dim". Zmienne daty zostaną zadeklarowane za pomocą instrukcji takich jak: "Dim d1 as Date". Innym sposobem sprawdzenia, czy zmienna jest typu "Data", jest sprawdzenie przypisania do tej zmiennej. Przypisania te będą zawierały znak "#", oznaczający typ "Data". Na przykład poniższa instrukcja przypisuje datę "12/1/2001" do zmiennej "D1", która jest "Data".

D1 = # 12/1/2001 #

Jak przekonwertować na typ danych "Data"

Aby porównać daty w VBA, musisz najpierw zapisać dwie daty w "Data", która jest jednym z różnych typów wartości w VBA. Typ "Date" jest specjalną instancją całego typu danych, dlatego porównywanie dat jest zasadniczo takie samo jak porównywanie liczb całkowitych. Jeśli Twoje daty nie są jeszcze w "Data", musisz je przekonwertować. Możesz to zrobić za pomocą funkcji CDate. Na przykład wykonaj poniższą instrukcję, aby przekształcić ciąg "12/1/2001" w typ "Data":

D1 = CDate ("12/1/2001")

Porównanie

Jeśli chcesz sprawdzić, czy data w zmiennej "Data" występuje przed inną, użyj symbolu "mniej niż", jak pokazano w poniższym przykładzie:

Jeśli (d1 <d2)

Użyj symbolu "większy niż", aby sprawdzić, czy jedna data występuje po drugiej, i użyj symbolu "równy", aby wiedzieć, czy wartości obu zmiennych odnoszą się do tej samej daty.

Przykładowy program

Napisz przykładowy program, który konwertuje i porównuje daty, więc możesz odwoływać się do tego kodu podczas pisania bardziej złożonych programów VBA, aby wykonać tę procedurę. Otwórz środowisko programistyczne w dowolnej aplikacji Office, klikając przycisk "Visual Basic" w zakładce "Developer". Następnie wklej następujący program w środkowym oknie środowiska. Używa funkcji "CDate" do konwersji łańcuchów na daty i dokonuje trzech różnych porównań między dwoma z nich. Uruchom program, naciskając "F5" i obserwuj wynik, zaznaczając okno "Natychmiast".

Public Sub CompareDates () Dim d1, d2 Jako data d1 = CDate ("12/1/2001") d2 = CDate ("12/1/2002") Jeśli (d1 d2) Następnie Debug.Print "Data 1 występuje później niż data 2. " Jeśli (d1 = d2) Następnie Debug.Print "Data 1 jest taka sama jak data 2." End Sub