Cách sử dụng các hàm bổ trợ Excel của bạn trong VBA
Nếu bạn đã tạo một Phần bổ trợ để chứa các hàm tùy chỉnh Excel của mình, bạn có thể đã phát hiện ra rằng, mặc dù các hàm hoạt động tốt trong một trang tính Excel, bạn không thể sử dụng chúng trong các thủ tục VBA của mình trong các sổ làm việc khác. Như thể Visual Basic Editor không thể _see chúng. Chà, đó là bởi vì nó không thể! Bài viết này giải thích cách bạn có thể khắc phục điều đó ._ Trước hết, hãy xem xét liệu đây có thực sự là điều bạn muốn làm hay không.
Phần bổ trợ được thiết kế chủ yếu để thêm chức năng bổ sung vào sổ làm việc của bạn. Khi bạn tải một Bổ trợ Excel, chức năng của nó ngay lập tức có sẵn cho tất cả các sổ làm việc của bạn. Nếu bạn tạo một thủ tục VBA phụ thuộc vào một chức năng tùy chỉnh có trong một sổ làm việc khác, thì sổ làm việc đó sẽ phải mở bất cứ khi nào bạn muốn sử dụng chức năng của nó. Tương tự với một chức năng tùy chỉnh trong Phần bổ trợ. Nếu Phần bổ trợ được tải thì không sao, nhưng giả sử bạn gửi sổ làm việc của mình qua thư cho người khác hoặc phân phối nó đến nhóm làm việc của bạn. Bạn cũng phải nhớ phân phối Add-In. Có thể đơn giản hơn khi đưa một bản sao của hàm vào mã sổ làm việc để các thủ tục của bạn có quyền truy cập trực tiếp vào nó (bạn có thể cần đặt nó thành Private Function hoặc thay đổi tên của nó để tránh xung đột đặt tên).
Tôi không nói đừng làm điều đó. Bạn chỉ cần nghĩ về nó trước và nếu bạn chắc chắn rằng Phần bổ trợ sẽ khả dụng, thì hãy tiếp tục. Đây là cách …
Khi nào vấn đề phát sinh?
Tôi đang viết một quy trình cho một trong những sổ làm việc của mình. Trong quy trình của mình, tôi muốn sử dụng hàm RemoveSpaces mà tôi đã tạo một lúc trước và được lưu trong Phần bổ trợ Martin’s Functions hiện được cài đặt trong bản sao Excel của tôi. Nhưng khi tôi cố gắng chạy quy trình của mình, tôi gặp lỗi.
Visual Basic Editor đang hoạt động như thể hàm không tồn tại, nhưng tôi biết nó có và tôi có thể thấy nó nếu tôi nhìn vào mã bên trong Phần bổ trợ của mình. Trên thực tế, mã hoạt động tốt nếu tôi chạy nó từ bên trong Phần bổ trợ của mình.
Tôi cần Trình soạn thảo Visual Basic để có thể xem các chức năng trong Phần bổ trợ của tôi từ bên trong mô-đun mã của sổ làm việc _dierence.
Đặt tên dự án VBA cho phần bổ trợ của bạn Mỗi sổ làm việc đều có tên dự án VBA. Nó được gọi là VBAProject. Bạn có thể thay đổi tên đó nếu bạn muốn nhưng bình thường tôi không bận tâm, vì bình thường nó không quan trọng.
Bạn đã bao giờ tự hỏi tại sao tất cả các sổ làm việc được hiển thị trong ngăn Project Explorer của trình chỉnh sửa cơ bản trực quan được gọi là “VBAProject”? Nếu bạn đã cài đặt bất kỳ Phần bổ trợ nào của Microsoft, bạn sẽ thấy rằng chúng có tên khác. Các nhà phát triển của Microsoft đã đưa Analysis ToolPak Add-In của họ vào Tên dự án VBA “funcres”.
Điều đầu tiên cần làm là đặt cho Phần bổ trợ của bạn một Tên dự án VBA duy nhất.
Điều này là do bạn sẽ tham chiếu đến nó bằng tên này trong bước tiếp theo và nếu có nhiều hơn một cái có cùng tên thì Visual Basic Editor sẽ không biết nên sử dụng cái nào.
Trong ngăn Project Explorer, hãy chọn tên của Phần bổ trợ của bạn. Nếu nó chưa được mở, hãy hiển thị Properties Window của Visual Basic Editor. Bạn sẽ thấy rằng chỉ có một thuộc tính, Name. Nhập tên khác và nhấn Enter. Bạn sẽ phải tuân theo các quy tắc đặt tên thông thường cho VBA (tức là không có ký tự bất hợp pháp và không có khoảng trắng). Bạn sẽ thấy rằng tên ngay lập tức được áp dụng trong Project Explorer.
Bây giờ, hãy lưu các thay đổi vào Phần bổ trợ của bạn. Đảm bảo rằng Phần bổ trợ của bạn được chọn trong Project Explorer và chọn Tệp> Lưu.
Đặt một Tham chiếu cho Phần bổ trợ Trong bước này, bạn cho sổ làm việc mà bạn muốn sử dụng các chức năng của Phần bổ trợ rằng Phần bổ trợ tồn tại. Bạn thực hiện việc này bằng cách _ Đặt Tham chiếu_ vào Bổ trợ. Bạn có thể đã gặp kỹ thuật này trước đây nếu bạn muốn viết mã Excel để giao tiếp với một chương trình khác như Outlook hoặc Access.
Nếu thuận tiện, hãy khởi động lại Excel tại thời điểm này. Điều này là do Phần bổ trợ được đổi tên của bạn sẽ được tải lại và danh sách bạn sắp xem sẽ được làm mới. Nếu nó không tiện, đừng bận tâm … hãy đọc đoạn tiếp theo và quyết định những gì bạn muốn làm.
Mở mô-đun mã trong sổ làm việc mà bạn muốn sử dụng các chức năng của Phần bổ trợ, sau đó đi tới Công cụ> Tham chiếu để mở hộp thoại Tham chiếu nơi bạn sẽ thấy danh sách tất cả các thư viện và các đối tượng khác (như Phần bổ trợ) mà bạn có thể đặt một tham chiếu. Nếu bạn đã khởi động lại Excel, danh sách này sẽ được làm mới và bạn có thể tìm thấy Tên dự án mà bạn đã đặt cho Phần bổ trợ của mình trong bước cuối cùng. Đánh dấu vào ô bên cạnh tên và nhấp vào nút OK.
Nếu bạn không khởi động lại Excel, bạn sẽ phải tìm tệp Bổ trợ của mình bằng cách nhấp vào nút Duyệt trên hộp thoại Tham chiếu. Thao tác này sẽ mở ra cửa sổ Thêm tham chiếu. Thay đổi phần Files of type: thành _Microsoft Excel Files (.xls; .xla) _ sau đó duyệt đến thư mục nơi phần bổ trợ được lưu trữ.
Chọn Phần bổ trợ của bạn và nhấp vào Mở. Thao tác này sẽ thêm Phần bổ trợ của bạn vào danh sách nơi bạn có thể chọn phần bổ trợ đó và nhấp vào OK.
LƯU Ý: Bạn không phải thực hiện cả hai thủ tục này! Chọn một hoặc cách khác tùy thuộc vào việc bạn có khởi động lại Excel hay không sau khi thay đổi tên Dự án VBA của Bổ trợ của bạn.
Bây giờ bạn sẽ có thể sử dụng các chức năng của Phần bổ trợ trong bất kỳ mô-đun nào trong sổ làm việc mà bạn đặt tham chiếu và chúng sẽ được Visual Basic Editor nhận dạng …
Nếu bạn nhìn vào Project Explorer, bạn sẽ thấy rằng một tham chiếu đã được áp dụng cho sổ làm việc …
Điều quan trọng cần nhớ là việc thêm tham chiếu chỉ áp dụng cho sổ làm việc mà bạn đã thực hiện quy trình này. Bạn sẽ phải thực hiện việc đó cho từng sổ làm việc khác nhau mà bạn muốn sử dụng các chức năng của Phần bổ trợ.
Giới thiệu về Phân phối Tệp của Bạn Khi bạn thêm một tham chiếu vào một Bổ trợ, liên kết này tới Bổ trợ được “gắn chặt” vào tệp. Nếu bạn di chuyển tệp sang một máy tính khác hoặc phân phối tệp đó cho đồng nghiệp của bạn, sổ làm việc sẽ tìm thấy cùng một Phần bổ trợ, ở cùng một vị trí, trên máy tính của họ. Ngoài ra, nếu Phần bổ trợ được di chuyển hoặc bị xóa khỏi máy tính, sổ làm việc sẽ không thể tìm thấy nó và mã của bạn sẽ không hoạt động.
Một số người ủng hộ rằng tệp và Phần bổ trợ được liên kết của nó phải luôn nằm trong cùng một thư mục để tránh các vấn đề mà điều này có thể gây ra. Tất nhiên, bạn có thể đặt lại tham chiếu để khắc phục sự cố.
Hãy tính đến những yếu tố này và bạn sẽ không gặp vấn đề.