Hi,
The dates on Sheet 2 aren't dates, they're text that looks like a date. Select a cell on sheet 2 and look in the formula bar and you will clearly see that every date has an apostrophe in front of it.
To solve this put a 1 in an empty cell and select that cell, right click and copy. Now select all the dates on sheet 2, right click, paste special, select multiply and click OK. All the dates now turn into numbers which you can format to a date format of your choosing.
A standard VLOOKUP formula will now work:-
=VLOOKUP(B4,Sheet2!$A$3:$B$29,2,FALSE)
Note you will still get a lot of #N/A! errors because there is only 1 valid match so you may want to allow for that with a formula like this.
=IFERROR(VLOOKUP(B4,Sheet2!$A$3:$B$29,2,FALSE),"")