W tym opracowaniu przedstawię trzy sposoby na dodawanie czasu do daty w języku VBA. Każdy ze sposobów będzie bazował na oddzielnej, wbudowanej funkcji VBA.
Zadanie polega na tym, że do dzisiejszej daty, będziemy chcieli dodać 10h i 30min.
TimeSerial
Wykorzystanie funkcji TimeSerial jest wg mnie najlepszym ze wszystkich sposobów. Wynika to z faktu, że funkcja ma prostą budowę i jest intuicyjna.
Funkcja składa się z trzech argumentów (godzina, minuta, sekunda), więc pod tym względem nie różni się ona od funkcji arkuszowej CZAS. Można powiedzieć nawet, że jest jest odpowiednikiem w Visual Basic.

Każdy z argumentów funkcji jest typu Integer, więc możemy z powodzeniem wykorzystać tą funkcję w pętli typu For … Next …
Dodawanie czasu do daty jest banalnie proste, wystarczy uzupełnić argumenty funkcji TimeSerial.

TimeValue
Funkcja TimeValue jako argument przyjmuje prosty ciąg tekstowy składający się odpowiednio z godzin, minut i sekund.
Odpowiednikiem Excelowym TimeValue jest funkcja CZAS.WARTOŚĆ.

Dodawanie czasu do daty jest proste, ale trudniejsze niż w przypadku TimeSerial. Należy podać odpowiedni ciąg tekstowy.

DateAdd
Funkcja DateAdd jest najmniej znana spośród wszystkich trzech wymienionych. Nie ma ona także swojego arkuszowego odpowiednika.
Posiada pewne ograniczenie, które polega na tym, że możemy dodać określoną ilość tylko konkretnej jednostki czasu (np. godziny). Oczywiście problem ten można rozwiązać zagnieżdżając kilkakrotnie funkcję DateAdd.
Funkcja ta posiada nieco inną konstrukcję. Pierwszy parametr typu String określa jednostkę czasu, którą należy dodać (największą jest rok, najmniejszą sekunda), drugi parametr typu Double to konkretna liczba, trzeci parametr typu Date to po prostu data wyjściowa.
