Tôi muốn có thể kiểm soát nguồn mô-đun VBA của bảng tính Excel (hiện đang sử dụng Excel 2003 SP3) để tôi có thể chia sẻ và quản lý mã được sử dụng bởi nhiều bảng tính khác nhau - và do đó tôi muốn tải lại chúng từ các tệp khi bảng tính được mở.Kiểm soát nguồn của mô-đun mã VBA Excel
Tôi có một mô-đun gọi là Loader.bas, mà tôi sử dụng để thực hiện hầu hết công việc lừa (tải và dỡ bất kỳ mô-đun nào khác được yêu cầu) - và tôi muốn có thể tải nó lên từ một tệp ngay sau khi bảng tính được mở.
Tôi đã đính kèm mã sau vào sự kiện Workbook_Open (trong lớp ThisWorkbook).
Private Sub Workbook_Open()
Call RemoveLoader
Call LoadLoader
End Sub
đâu RemoveLoader (cũng trong lớp ThisWorkbook) chứa đoạn mã sau:
Private Sub RemoveLoader()
Dim y As Integer
Dim OldModules, NumModules As Integer
Dim CompName As String
With ThisWorkbook.VBProject
NumModules = ThisWorkbook.VBProject.VBComponents.Count
y = 1
While y <= NumModules
If .VBComponents.Item(y).Type = 1 Then
CompName = .VBComponents.Item(y).Name
If VBA.Strings.InStr(CompName, "Loader") > 0 Then
OldModules = ThisWorkbook.VBProject.VBComponents.Count
.VBComponents.Remove .VBComponents(CompName)
NumModules = ThisWorkbook.VBProject.VBComponents.Count
If OldModules - NumModules = 1 Then
y = 1
Else
MsgBox ("Failed to remove " & CompName & " module from VBA project")
End If
End If
End If
y = y + 1
Wend
End With
End Sub
Mà có lẽ là một chút overcomplicated và hơi thô - nhưng tôi đang cố gắng tất cả mọi thứ tôi có thể tìm thấy để có được nó để tải mô-đun bên ngoài!
Thông thường, khi tôi mở bảng tính, hàm RemoveLoader tìm thấy có một mô-đun "Loader1" đã được đưa vào dự án VBA mà nó không thể loại bỏ và cũng không tải được mô-đun Trình tải mới từ tệp.
Bất kỳ ý tưởng nào nếu những gì tôi đang cố gắng làm là có thể? Excel có vẻ rất thích gắn thêm 1 vào các tên mô-đun này - khi tải hoặc xóa (tôi không chắc chắn).
Tôi quên thêm rằng tôi đã làm một số suy nghĩ và đưa ra điều này: http://grumpyop.wordpress.com/2009/04/20/version-control-for-excel-workbooks-part-2/ Lưu ý rằng cũng có một cái gì đó gọi là VBAMaven được đề cập trong các ý kiến giống như một số dịch vụ bên ngoài có thể giúp đỡ. –