Menu

Khắc phục lỗi #NAME? khi dùng hàm tùy chỉnh (UDF) trong Excel

Phó Thánh Giáp 15/06/2026 17:47 231 lượt xem 2 trả lời

Chào các anh chị em trong diễn đàn,

Hôm nay mình muốn chia sẻ một vấn đề mình vừa gặp phải và cách khắc phục, hy vọng sẽ giúp ích cho mọi người. Mình có viết một vài hàm tùy chỉnh (User Defined Functions - UDF) bằng VBA để tự động hóa một số tác vụ trong file Excel của mình. Khi đang dùng ngon lành thì tự dưng hôm sau mở file lên, các ô sử dụng hàm UDF đó đều báo lỗi #NAME?.

Ban đầu mình khá hoang mang, kiểm tra lại code VBA thì thấy không có gì thay đổi. Sau một hồi tìm hiểu và thử nghiệm, mình phát hiện ra nguyên nhân:

  • File Excel của mình được lưu dưới định dạng .xlsx (định dạng mặc định, không chứa macro). Khi lưu ở định dạng này, các hàm VBA tùy chỉnh sẽ không được lưu theo. Do đó, khi mở file trên một máy tính khác hoặc sau một thời gian, Excel không nhận diện được các hàm này và trả về lỗi #NAME?.
  • Một nguyên nhân khác có thể là do tùy chọn bảo mật của Excel đã vô hiệu hóa các macro.

Cách khắc phục:

  1. Lưu file ở định dạng hỗ trợ Macro: Thay vì lưu là .xlsx, hãy lưu file với định dạng Excel Macro-Enabled Workbook (.xlsm). Thao tác này sẽ đảm bảo hàm UDF của bạn được lưu cùng với file và hoạt động bình thường.
  2. Kiểm tra cài đặt Trust Center: Vào File > Options > Trust Center > Trust Center Settings... > Macro Settings. Đảm bảo rằng tùy chọn Disable all macros with notification hoặc Enable all macros (not recommended) được chọn, và bạn đã cấp quyền tin cậy cho file của mình nếu cần.

Hy vọng mẹo nhỏ này sẽ giúp các bạn tránh được lỗi khó chịu trên. Có ai gặp trường hợp tương tự hoặc có cách xử lý nào khác không, cùng chia sẻ nhé!

4

Đúng là lỗi #NAME? với hàm UDF này đôi khi làm mất thời gian tìm hiểu thật. Cảm ơn bạn đã chia sẻ kinh nghiệm khắc phục nhé!

Mình cũng từng gặp trường hợp tương tự, và thường là do file không được lưu ở định dạng macro-enabled (.xlsm). Khi lưu thành .xlsx là code VBA "bay màu" luôn.

Bạn có thể chia sẻ thêm là trước khi lỗi xảy ra, bạn có thực hiện thao tác nào với file VBA không? Ví dụ như copy/paste code sang file khác, hay chỉnh sửa module nào không?

4

Chào bạn,

Cảm ơn bạn đã chia sẻ kinh nghiệm khắc phục lỗi #NAME? với hàm tùy chỉnh. Lỗi này đúng là khá "khó chịu" khi mở file Excel lên mà các hàm UDF bỗng dưng "biến mất".

Theo kinh nghiệm của mình, lỗi này thường xảy ra khi file Excel không tìm thấy hoặc không nạp được module chứa hàm VBA đó. Các nguyên nhân phổ biến có thể là:

  • File VBA bị tách rời: Nếu bạn lưu file Excel dưới dạng .xlsx thay vì .xlsm (macro-enabled workbook), các đoạn code VBA sẽ bị loại bỏ.
  • Module bị xóa hoặc đổi tên: Trong quá trình chỉnh sửa, module chứa hàm UDF có thể vô tình bị xóa hoặc đổi tên, khiến Excel không nhận diện được hàm.
  • Cài đặt bảo mật VBA: Đôi khi, cài đặt bảo mật của Excel có thể ngăn không cho các hàm VBA được thực thi.

Để khắc phục, bạn có thể thử các bước sau:

  1. Kiểm tra định dạng file: Đảm bảo file của bạn được lưu dưới định dạng .xlsm.
  2. Kiểm tra VBE: Mở trình soạn thảo VBA (Alt + F11), vào mục "Modules" xem module chứa hàm UDF của bạn có còn tồn tại và tên có đúng không. Nếu cần, bạn có thể copy lại code và paste vào một module mới.
  3. Cài đặt bảo mật: Vào File > Options > Trust Center > Trust Center Settings > Macro Settings, đảm bảo tùy chọn "Enable all macros" (hoặc "Disable all with notification") được chọn và tích vào ô "Trust access to the VBA project object model".

Không biết bạn đã thử những cách nào rồi? Có thể chia sẻ thêm chi tiết về cách bạn khắc phục được không, để mọi người cùng học hỏi thêm?

4

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

Đăng nhập Đăng ký