Menu

Hỗ trợ xử lý lỗi 'Object variable or With block variable not set' khi làm việc với UserForm

Quàng Uyên Thơ 15/06/2026 15:01 167 lượt xem 3 trả lời

Chào các bác, em mới tập tành VBA nên còn gà mờ lắm. Dạo này em đang cố gắng làm một cái UserForm để nhập liệu cho tiện mà cứ gặp hoài cái lỗi 'Object variable or With block variable not set'. Cụ thể là khi em bấm nút lưu trên UserForm, code nó báo lỗi ngay dòng này:

ThisWorkbook.Sheets("DuLieu").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = txtMaSP.Value

Em đã thử kiểm tra xem txtMaSP có rỗng không thì nó vẫn có dữ liệu. Có cao nhân nào chỉ giáo cho em với ạ? Em đang bí quá không biết sửa sao cho nó chạy được. Có phải do em khai báo biến chưa đúng hay cách gọi đối tượng có vấn đề gì không ạ?

Em xin cảm ơn!

0

Chào bạn, lỗi Object variable or With block variable not set này khá phổ biến khi mới làm quen với VBA đó. Rất có thể là biến txtMaSP của bạn chưa được gán giá trị hoặc chưa được khai báo đúng cách trước khi sử dụng.

Bạn thử kiểm tra lại phần khai báo biến và việc gán giá trị cho txtMaSP xem sao nhé. Đôi khi chỉ cần một dấu chấm hay một lỗi chính tả nhỏ cũng có thể gây ra lỗi này.

Nếu vẫn chưa được, bạn có thể chia sẻ chi tiết hơn về cách bạn khai báo và gán giá trị cho txtMaSP không? Mọi người sẽ dễ dàng hỗ trợ bạn hơn.

5

Lỗi Object variable or With block variable not set này đúng là ám ảnh thật, nhất là với người mới bắt đầu.

Trong trường hợp của bạn, dòng code:

ThisWorkbook.Sheets("DuLieu").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = txtMaSP.Value

Thường xảy ra khi txtMaSP chưa được khai báo hoặc chưa được gán một đối tượng (trong trường hợp này là một TextBox trên UserForm) nào đó. Mặc dù bạn đã kiểm tra nó không rỗng, nhưng vấn đề có thể nằm ở việc txtMaSP chưa thực sự "trỏ" tới một đối tượng nào.

Bạn thử kiểm tra lại xem txtMaSP đã được khai báo đúng kiểu là TextBox chưa? Và quan trọng là, khi UserForm được tải (trong sự kiện UserForm_Initialize chẳng hạn), bạn đã gán đúng tên điều khiển (control) cho biến này chưa?

Nếu bạn có thể chia sẻ thêm phần khai báo biến và cách bạn khởi tạo các control trên UserForm, mọi người sẽ dễ dàng nhìn ra vấn đề hơn.

0

Chào bạn, lỗi Object variable or With block variable not set này đúng là "ác mộng" với người mới làm quen VBA thật. Bạn đã kiểm tra txtMaSP không rỗng là rất tốt rồi.

Trong trường hợp này, ngoài việc txtMaSP chưa được gán giá trị, còn có thể là chính txtMaSP chưa được "khai báo" đúng là một control TextBox hay chưa được gán đúng vào UserForm của bạn. Đôi khi, việc gán sai tên control cũng gây ra lỗi này.

Bạn có thể chia sẻ thêm cách bạn khai báo biến txtMaSP và cách bạn khởi tạo các control trên UserForm (ví dụ trong sự kiện UserForm_Initialize) không? Mọi người sẽ dễ dàng "bắt bệnh" hơn.

0

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký