2012-03-13 39 views
10

Cách tốt nhất để tránh trùng lặp mã khi làm việc trong VBA là gì?Làm cách nào để sử dụng lại mã với VBA

Tôi đã quen với ngôn ngữ nơi tôi có thể thêm câu lệnh nhập và truy cập vào tất cả các thuộc tính và chức năng công cộng của lớp học, vì vậy tôi có thể tạo một lớp tiện ích với một số chức năng phổ biến và truy cập vào bất kỳ dự án nào Tôi chọn để nhập nó vào. Bất cứ lúc nào tôi muốn cập nhật một trong những chức năng đó, một chỉnh sửa là tất cả những gì cần thiết để làm cho nó hoạt động trên tất cả các dự án.

Có cách nào tốt để nhân rộng chức năng này trong VBA không?

Trả lời

13

Nội dung sau tập trung vào Excel nhưng tôi chắc chắn điều tương tự sẽ áp dụng cho bất kỳ sản phẩm Office nào.

Cách dễ dàng là lưu mã có thể dùng lại của bạn dưới dạng phần bổ trợ (* .xla cho Excel 2003, * .xlam cho Excel 2007+). Sau đó bạn thêm addin vào Excel và tất cả các bảng tính bạn mở sẽ có quyền truy cập vào các chức năng tùy chỉnh mà bạn có trong phần bổ trợ của mình. Nếu bạn thêm mã VBA cụ thể vào bảng tính, bạn có thể thêm tham chiếu vào phần bổ trợ của mình và mã VBA của bạn sẽ có quyền truy cập vào tất cả các phụ công khai, chức năng và các lớp của chương trình bổ trợ của bạn.

Trong tổ chức của tôi, chúng tôi sử dụng 3 trang chủ làm bổ trợ - chúng được lưu trữ trong C: \ Program Files \ OrganisationName. Và mọi người đều có quyền truy cập vào chúng. Khi cập nhật được thực hiện, chúng tôi chỉ cần sao chép phiên bản mới vào ổ cứng của mọi người và khởi động lại Excel và họ có phiên bản mới.

Các addins chứa tiện ích chức năng như chức năng:

  • đọc dữ liệu từ/ghi dữ liệu vào bảng tính/files/cơ sở dữ liệu.
  • thao tác dữ liệu thông thường như loại bỏ bản sao từ một danh sách
  • chức năng thống kê tiên tiến
  • , vv

Một vài hạn chế:

  • Nếu bạn có một vài trường hợp của Excel mở, chỉ người ta có thể cập nhật addin, các trường hợp khác ở chế độ chỉ đọc
  • Nếu Excel gặp sự cố, chế độ khôi phục tự động thường không lưu những thay đổi bạn đã thực hiện đối với tiện ích bổ sung của mình (TBC trên các phiên bản mới hơn) - có một số công cụ để tự động lưu thường xuyên

Một cách khác là phát triển xll hoặc thư viện COM trong VB hoặc C# ví dụ, nhưng đây là thứ tôi có không thử.

Có rất nhiều hướng dẫn trực tuyến nếu bạn cần thủ tục chi tiết hơn.

+0

Hoàn hảo. Đã bị mắc kẹt một chút vì tôi quên đặt tham chiếu, nhưng một khi tôi đọc lại bài đăng của bạn và làm điều đó tất cả đều hoạt động đúng cách. Cảm ơn :) –

+0

Một trong những nhược điểm của bạn (cập nhật) được giải quyết tại đây: http://www.excelguru.ca/content.php?152-Deploying-Add-ins-in-a-Network-Environment. Hy vọng điều này sẽ giúp bất cứ ai đến đây trong tương lai. –

Các vấn đề liên quan