Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Xử lý lỗi 'Object required' khi làm việc với Range trong VBA

Nghiêm Lâm Trực 29/03/2026 04:43 146 lượt xem 1 trả lời

Chào mọi người,

Mình đang gặp một vấn đề khá khó chịu khi code VBA, đó là lỗi 'Object required' (Lỗi 424) khi thao tác với đối tượng Range. Lỗi này thường xuyên xuất hiện khi mình cố gắng gán giá trị hoặc thực hiện các thao tác trên một ô hoặc một vùng ô mà VBA không nhận diện được đối tượng đó.

Ví dụ điển hình là:

Dim ws As Worksheet
Dim rng As Range
Set ws = ThisWorkbook.Sheets("Sheet1")
Set rng = ws.Range("A1")
rng.Value = "Hello" ' Lỗi có thể xảy ra ở đây nếu rng chưa được gán đúng hoặc ws chưa được định nghĩa hợp lệ

Sau khi tìm hiểu và thử nghiệm, mình nhận ra một số nguyên nhân phổ biến dẫn đến lỗi này:

  • Chưa khai báo biến hoặc khai báo nhưng chưa gán giá trị cho biến đối tượng (Worksheet, Range, Workbook, ...).
  • Sử dụng tên sheet, tên file không chính xác hoặc sheet/file đó không tồn tại tại thời điểm chạy code.
  • Thao tác với một đối tượng đã bị hủy hoặc không còn tồn tại.
  • Thiếu từ khóa Set khi gán một đối tượng cho một biến đối tượng. Đây là lỗi rất hay gặp, ví dụ: rng = ws.Range("A1") thay vì Set rng = ws.Range("A1").

Để khắc phục, mình thường kiểm tra kỹ các bước sau:

  1. Đảm bảo tất cả các biến đối tượng đều đã được khai báo với kiểu dữ liệu phù hợp (Dim ws As Worksheet, Dim rng As Range).
  2. Luôn sử dụng Set khi gán giá trị cho biến đối tượng: Set rng = ws.Range("A1").
  3. Kiểm tra tính hợp lệ của các đối tượng (tên sheet, tên file) trước khi sử dụng. Có thể dùng On Error Resume Next kết hợp kiểm tra Err.Number hoặc sử dụng các hàm kiểm tra sự tồn tại của sheet/file.
  4. Trong trường hợp thao tác với vùng dữ liệu động, hãy chắc chắn rằng bạn đã xác định đúng vùng đó (ví dụ: sử dụng Cells(Rows.Count, "A").End(xlUp) để tìm dòng cuối cùng).

Hy vọng chia sẻ này giúp ích cho các bạn đang gặp phải lỗi tương tự. Nếu có cách nào khác hay hơn, mọi người cùng thảo luận nhé!

1

Chào bạn,

Lỗi 424 'Object required' này đúng là rất hay gặp khi mới làm quen với VBA, nhất là với Range. Nguyên nhân phổ biến nhất là biến Range của bạn chưa được gán một đối tượng cụ thể nào. Như trong ví dụ của bạn, nếu dòng Set ws = ThisWorkbook.Sheets("Sheet1") bị lỗi (ví dụ tên sheet sai), thì sau đó ws.Range("A1") sẽ không hoạt động đúng và dẫn đến lỗi khi gán giá trị.

Bạn thử kiểm tra lại xem tên sheet đã gõ đúng chưa, và đảm bảo là sheet đó có tồn tại trong workbook hiện tại nhé. Đôi khi chỉ là một lỗi đánh máy nhỏ thôi.

3

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

Đăng nhập Đăng ký