Ok thanks bạn nha! Rất tuyệt vời. làm mình kiếm cả buổi chiều
Đối với bạn thì tuyệt vời, nhưng với tôi thì chưa cảm thấy được chứ đừng nói là tuyệt vời.
Lý do: Ngoại trừ bạn làm việc trên module của sheet thì sao cũng được, nhưng làm việc trên UserForm hay bất cứ đối tượng nào khác hay ở một module nào đó thì bạn phải luôn luôn nhớ một điều rằng:
Mọi tham chiếu đến một Range (một ô hay một khối ô) của một sheet nào đó thì luôn luôn phải có tên sheet đi kèm. Ngoại trừ sheet đó đang hiện hành (Active), nếu không sẽ gây hậu quả nghiêm trọng cho dữ liệu của sheet khác nếu sheet đó hiện hành.
Nói về tên sheet, thì nó có 2 cái tên, một cái tên mà ta thấy được tại Sheet Tab gọi là '
Name' và một tên chỉ thấy được trong môi trường VBE, ta gọi là '
CodeName'.
Với sheet trong hình,
Sheet1 là tên trên sheet tab và
HoangTrongNghia là tên trong môi trường VBE.
Nếu ta tham chiếu đến một Range bằng Name thì cách ghi như sau:
Sheets("
Sheet1").Range("A1").Value = TextBox1
Và nếu ta tham chiếu bằng CodeName thì ta ghi như sau:
HoangTrongNghia.[A1].Value = TextBox1
Với
Range("xxx") hoặc
[xxx] là như nhau bạn nhé!
Nhưng nếu bạn muốn nhập giá trị từ TextBox1 vào ô A1 là dạng số (numeric) thì bạn phải thêm hàm Val() vào cấu trúc, như sau:
HoangTrongNghia.[A1].Value =
Val(TextBox1)
Các bạn mới bắt đầu học VBA phải luôn luôn nhớ bài học căn bản này!