Code của bạn có mấy vấn đề sau:
1. Đoạn If .[H6] = "" Or Not IsDate(.[H6]) Then .[H6].Value = Date có thể báo lỗi, thay vì dùng hàm Date, bạn dùng hàm Now() xem sao.
2. Sau khi gán ngày, vào H6, tại sao bạn lại ClearContents, dữ liệu vừa được ghi đã xóa đi luôn.
3. Đoạn ghi số hóa đơn .[D6].Value = Right("00000" & So + 1, 5) bị lỗi. Hàm Right() là hàm cắt chuỗi chứ không phải hàm nối chuỗi. Khi bạn nối chuỗi 00000 & So +1 thì excel vẫn hiểu là So +1 với số ký tự <5, hàm sẽ báo lỗi. Đoạn code chỉ nên đơn giản là .[D6].Value = So + 1, sau đó định dạng custom là "00000".