Thầy cho hỏi khi tạo useform nhập liệu; nếu mã sản phẩm là số mà số đầu là 0 ví dụ 0027 thì khi map vào sheet thì Excel sẽ bỏ mất số 0; làm thế nào để tránh sự cố này - Cám ơn thầy
Đúng như bạn nói, việc nhập số 0 ở trước sẽ gây ra lỗi. Việc này về bản chất được hiểu như sau:
- Nếu ở dữ liệu kiểu Text (trong VBA là string) thì số 0 ở trước sẽ vẫn được tính là 1 ký tự.
- Nếu dữ liệu kiểu Number (trong VBA là long, integer, single, double...) thì số 0 ở trước sẽ bị loại bỏ.
Do vậy bạn có thể giải quyết theo cách: khi đưa vào Sheet Excel sẽ ở dạng text:
ví dụ: Sheet1.Range("A1").Value = "'" & Me.Textbox1.Value
Phần phía trước dấu & là ký tự dấu nháy đơn, khi viết trong cú pháp thì dấu này phải đặt trong cặp dấu nháy kép:
"'" = Dấu nháy kép + dấu nháy đơn + dấu nháy kép
Tuy nhiên khi đặt mã sản phẩm không nên chỉ toàn ký tự số, mà nên có 1 ký tự text. Mã phải luôn là text để đảm bảo không bị nhầm lẫn khi xử lý (number thường tự động hiểu là bỏ số 0 ở trước)
vâng cám ơn thầy
Chúc bạn học tốt cùng Gitiho!