Lỗi VBA 1004 - Lỗi do ứng dụng xác định hoặc do đối tượng xác định

Hướng dẫn này sẽ giải thích lỗi VBA 1004- Lỗi do ứng dụng xác định hoặc do đối tượng xác định.

Lỗi thời gian chạy VBA 1004 được gọi là lỗi do ứng dụng xác định hoặc do đối tượng xác định xảy ra trong khi mã đang chạy. Tạo lỗi mã hóa (Xem Hướng dẫn xử lý lỗi của chúng tôi) là một phần của việc học VBA nhưng việc biết tại sao lỗi xảy ra sẽ giúp bạn tránh mắc lỗi trong quá trình viết mã trong tương lai.

Lỗi VBA 1004 - Đối tượng không tồn tại

Nếu chúng tôi đang đề cập đến một đối tượng trong mã của chúng tôi, chẳng hạn như Tên phạm vi chưa được xác định, thì lỗi này có thể xảy ra vì mã VBA sẽ không thể tìm thấy tên.

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeĐặt CopyFrom = Sheets (1) .Range ("CopyFrom")Đặt CopyTo = Sheets (1) .Range ("CopyTo")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesKết thúc Sub

Ví dụ trên sẽ sao chép các giá trị từ dải ô được đặt tên “CopyFrom” sang dải ô được đặt tên “CopyTo” - với điều kiện tất nhiên đây là các dải ô được đặt tên hiện có! Nếu chúng không tồn tại, thì Lỗi 1004 sẽ hiển thị.

Cách đơn giản nhất để tránh lỗi này trong ví dụ trên là tạo tên phạm vi trong sổ làm việc Excel hoặc tham chiếu đến phạm vi trong định dạng hàng và cột truyền thống, ví dụ: Phạm vi (“A1: A10”).

Lỗi VBA 1004 - Tên đã được sử dụng

Lỗi cũng có thể xảy ra nếu bạn đang cố gắng đổi tên một đối tượng thành một đối tượng đã tồn tại - ví dụ: nếu chúng tôi đang cố gắng đổi tên Sheet1 nhưng tên bạn đang đặt cho trang tính đã là tên của trang tính khác.

123 Sub NameWorksheet ()ActiveSheet.Name = "Sheet2"Kết thúc Sub

Nếu chúng ta đã có một Sheet2, thì lỗi sẽ xảy ra.

Lỗi VBA 1004 - Tham chiếu không chính xác một đối tượng

Lỗi cũng có thể xảy ra khi bạn đã tham chiếu sai một đối tượng trong mã của mình. Ví dụ:

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeĐặt CopyFrom = Range ("A1: A10")Đặt CopyTo = Range ("C1: C10")Phạm vi (CopyFrom). Sao chépPhạm vi (CopyTo) .PasteSpecial xlPasteValuesKết thúc Sub

Điều này một lần nữa sẽ cung cấp cho chúng tôi Lỗi 10004

Hãy sửa mã và lỗi sẽ không còn hiển thị nữa.

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeĐặt CopyFrom = Range ("A1: A10")Đặt CopyTo = Range ("C1: C10")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesKết thúc Sub

Lỗi VBA 1004 - Không tìm thấy đối tượng

Lỗi này cũng có thể xảy ra khi chúng tôi đang cố gắng mở một sổ làm việc và không tìm thấy sổ làm việc - sổ làm việc trong trường hợp này là đối tượng không được tìm thấy.

1234 Sub OpenFile ()Dim wb As WorkbookĐặt wb = Workbooks.Open ("C: \ Data \ TestFile.xlsx")Kết thúc Sub

Mặc dù thông báo sẽ khác trong hộp lỗi, nhưng lỗi vẫn là 1004.

wave wave wave wave wave