Nhờ viết giúp sub Export - Import Module (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

TrungChinhs

Thành viên tích cực
Tham gia
18/2/08
Bài viết
1,475
Được thích
2,470
Nghề nghiệp
Công chức
Muốn Export Module từ file hiện hành sang file khác và Import Module từ file khác vào file hiện hành tôi phải làm thủ công từng Module một, với những file có nhiều module thì cách làm này mất khá nhiều thời gian và hay nhầm lẫn. Tôi đã tìm trên diễn đàn có một số bài nhưng không test được. Nhờ các bạn viết giúp tôi Sub để thực hiện công việc này. Thanks !
 
Em cũng toàn làm thủ công như bác thôi --=0, ngày trước bác Duyệt có viết về vấn đề rõ nhưng tìm chưa ra !$@!!
 
Upvote 0
Mã:
[B]Sub ExportBasClsFrm()[/B]
    Dim VBComp As VBComponent
    For Each VBComp In ActiveWorkbook.VBProject.VBComponents
        With VBComp
            If (.Type <> vbext_ct_Document) Then
                Dim fName As String
                fName = VBComp.Name
                
                If .Type = vbext_ct_StdModule Then fName = fName & ".bas"
                If .Type = vbext_ct_ClassModule Then fName = fName & ".cls"
                If .Type = vbext_ct_MSForm Then fName = fName & ".frm"
                
                VBComp.Export ("c:\" & fName) 
            End If
        End With
    Next
[B]End Sub[/B]

Sub ImportFile()
ActiveWorkbook.VBProject.VBComponents.Import "c:\Module1.bas"
End Sub

Bạn tự chế cho phù hợp với yêu cầu của bạn nhé. lười code quá :-=

Để import, export được bạn phải bật Trust access to Visual Basic Project trong mục Tools\Macro\Security... Trusted Publishers
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Cảm ơn minhtu !
1. Sub Export OK rồi (với máy của tôi phải sửa ...As VBComponent thành ...As Variant thì mới chạy được).

2. Sub ImportFile()
ActiveWorkbook.VBProject.VBComponents.Import "c:\Module1.bas"
End Sub
Khi thay Module1 bằng tên một Module...có trong thư mục thì chạy tốt nhưng có cách nào để copy tất cả các Module trong thư mục này cùng một lúc không (không phải chỉ định chính xác tên Module, tôi thử thay bằng Module*.bas nhưng không được) ? Rất mong MinhTu và các bạn vui lòng giúp tiếp. Xin cảm ơn !
 
Upvote 0
- Nếu export xong import luôn cho wookbook khác thì bạn có thể lưu tên các file trong quá trình export để làm việc với import

- Nếu chỉ import các module trong thư mục chỉ định trước nào đó bạn có thể dùng code sau:
Mã:
[B]Sub ImportFiles()[/B]
    Dim FileS As FileSearch
    Set FileS = Application.FileSearch
    With FileS
        .NewSearch
        .Filename = "*.bas"
        .LookIn = "C:\"
        .SearchSubFolders = False
        .Execute
    End With
    
    Dim F As Variant
    For Each F In Application.FileSearch.FoundFiles
        ActiveWorkbook.VBProject.VBComponents.Import F
    Next F
[B]End Sub[/B]
 
Upvote 0
- Nếu export xong import luôn cho wookbook khác thì bạn có thể lưu tên các file trong quá trình export để làm việc với import

- Nếu chỉ import các module trong thư mục chỉ định trước nào đó bạn có thể dùng code sau:
Mã:
[B]Sub ImportFiles()[/B]
    Dim FileS As FileSearch
    Set FileS = Application.FileSearch
    With FileS
        .NewSearch
        .Filename = "*.bas"
        .LookIn = "C:\"
        .SearchSubFolders = False
        .Execute
    End With
 
    Dim F As Variant
    For Each F In Application.FileSearch.FoundFiles
        ActiveWorkbook.VBProject.VBComponents.Import F
    Next F
[B]End Sub[/B]
Cho mình hỏi: Mình muốn Import file (.bas, .frm, .cls) vào một VBProject đã bị khóa (mình có Password của VBProject này) thì làm thế nào? Mình đang cần sử dụng 1 Workbook để Import vào một Workbook khác.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom