I'm wondering what range.pastespecial without parameters does; is it the same as a plain copy?
If so then:
NoOfCrew = Sheets("Cache").Cells(Rows.Count, "A").End(xlUp).Row
NoOfCrew = NoOfCrew + 1
Sheets("Hotel Booking").Range("Q10:U19").Copy
Sheets("Cache").Range("A" & NoOfCrew).PasteSpecial
Sheets("Hotel Booking").Range("X10:X19").Copy
Sheets("Cache").Range("F" & NoOfCrew).PasteSpecial
can be shortened to:
NoOfCrew = Sheets("Cache").Cells(Rows.Count, "A").End(xlUp).Row + 1
Sheets("Hotel Booking").Range("Q10:U19,X10:X19").Copy Sheets("Cache").Range("A" & NoOfCrew)