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 'Automation error' khi gọi hàm VBA từ Excel

Quàng Kiên Oanh 03/04/2026 03:43 387 lượt xem 2 trả lời

Chào mọi người,

Mình đang gặp một vấn đề khá khó chịu khi làm việc với VBA. Cụ thể là khi mình gọi một hàm VBA tùy chỉnh (UDF - User Defined Function) từ một ô trong Excel, thỉnh thoảng nó lại báo lỗi 'Automation error'. Lỗi này không xảy ra liên tục mà chỉ xuất hiện ngẫu nhiên, đôi khi là sau khi mình chỉnh sửa code VBA một chút.

Mình đã thử tìm kiếm trên mạng và thấy có nhiều nguyên nhân có thể gây ra lỗi này, ví dụ như:

  • Khai báo biến chưa đúng kiểu dữ liệu.
  • Truyền tham số không phù hợp vào hàm.
  • Sử dụng các đối tượng COM không được giải phóng đúng cách.
  • Lỗi trong chính logic của hàm VBA.

Hiện tại, hàm của mình có dạng như sau:

Function MyCustomFunction(input1 As Variant, input2 As Range) As Variant
    On Error Resume Next
    ' ... logic xử lý ...
    MyCustomFunction = result
    On Error GoTo 0
End Function

Các tham số đầu vào là VariantRange. Mình đã cố gắng kiểm tra kỹ lưỡng nhưng chưa tìm ra điểm sai sót.

Có anh chị nào đã từng gặp lỗi này và có kinh nghiệm xử lý không ạ? Đặc biệt là làm sao để xác định chính xác nguyên nhân gây ra lỗi 'Automation error' khi gọi hàm VBA từ Excel?

Rất mong nhận được sự giúp đỡ từ cộng đồng!

2

Chào bạn,

Lỗi 'Automation error' khi gọi UDF đúng là rất khó chịu, nhất là khi nó xuất hiện ngẫu nhiên. Mình cũng từng gặp trường hợp tương tự. Theo kinh nghiệm của mình, ngoài những nguyên nhân bạn đã liệt kê, đôi khi lỗi này còn do:

  • Tương tác với các ứng dụng Office khác: Nếu UDF của bạn có gọi đến các đối tượng của Word, Outlook, Access,... mà không xử lý lỗi hoặc đóng đối tượng không đúng cách thì cũng dễ gây ra lỗi này.
  • Truy cập vào các đối tượng Excel không ổn định: Ví dụ, truy cập vào một ChartObject chưa được tạo hoặc đã bị xóa.

Bạn thử kiểm tra lại xem UDF của mình có những tương tác nào với các ứng dụng khác hoặc các đối tượng Excel mà có thể bị lỗi không? Nếu có thể, bạn chia sẻ đoạn code UDF đó lên đây để mọi người cùng xem và góp ý nhé!

0

Chào bạn,

Lỗi "Automation error" khi gọi UDF từ Excel đúng là làm mất tập trung thật. Mình cũng đã từng đau đầu với nó.

Ngoài các nguyên nhân bạn đã liệt kê, đôi khi lỗi này còn do xung đột giữa các tiến trình hoặc khi bạn truy cập vào các đối tượng Excel chưa được khởi tạo đúng cách. Ví dụ, nếu bạn cố gắng truy cập vào một Worksheet hoặc Range mà nó chưa tồn tại hoặc đã bị xóa.

Bạn thử kiểm tra kỹ lại cách bạn khai báo và truy cập vào các đối tượng trong code xem sao. Nếu có thể, bạn chia sẻ thêm một chút về đoạn code UDF đó, có thể mọi người sẽ phát hiện ra điểm mấu chốt.

1

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

Đăng nhập Đăng ký