Сравнение на датите в VBA
Определяне на типа
Не е необходимо да преобразувате дати към типа данни "Дата", за да правите сравнения, ако те вече са в този тип. Можете да разберете дали променливата е "Дата", като използвате няколко метода. Прегледайте раздел "Декларации" в началото на процедурата на VBA. Този раздел е частта, в която декларирате всички променливи, като използвате ключовата дума "Dim". Вашите променливи за дата ще бъдат обявени с инструкции като следното: "Dim d1 as Date". Друг начин да разберете дали вашата променлива е тип "Дата" е да прегледате заданията, направени към тази променлива. Тези задания ще използват знака "#", който обозначава тип "Дата". Например, следната инструкция задава датата "12/1/2001" на променливата "D1", която е "Дата".
D1 = # 12/1/2001 #
Как да конвертирате данните тип "Дата"
За да сравните датите в VBA, първо трябва да имате две дати, съхранени в "Дата", което е един от различните типове стойности в VBA. Типът "Дата" е специален случай на целия тип данни, така че сравняването на датите е по същество същото като сравняването на цели числа. Ако вашите дати все още не са в "Дата", ще трябва да ги конвертирате. Можете да го направите, като използвате функцията CDate. Например изпълнете следната инструкция, за да преобразувате низа "12/1/2001" в тип "Дата":
D1 = CDate ("12/1/2001")
Сравнението
Ако искате да проверите дали датата в променлива "Дата" е преди друга, използвайте символа "по-малко от", както е показано в следния пример:
Ако (d1 <d2)
Използвайте символа "по-голям от", за да проверите дали дадена дата се проявява след друга и използвайте символа "равен", за да разберете дали стойностите на двете променливи се отнасят за същата дата.
Примерна програма
Напишете примерна програма, която преобразува и сравнява датите, така че можете да се позовете на този код, когато пишете по-сложни програми на VBA, за да изпълните тази процедура. Отворете програмната среда във всяка от приложенията на Office, като кликнете върху бутона "Visual Basic" в раздела "Developer". След това поставете следната програма в централния прозорец на средата. Той използва функцията "CDate", за да конвертира низове в дати и прави три различни сравнения между два от тях. Изпълнете програмата, като натиснете "F5" и наблюдавайте изхода, като проверите прозореца "Immediate".
(D1 d2) След това Debug.Print "Дата 1 се появява по-късно от дата 2. " Ако (d1 = d2) Тогава Debug.Print "Дата 1 е същата като дата 2." End Sub