Mở nhiều files có điều kiện (về tên file) trong cùng thư mục

Liên hệ QC

duyamadet

Thành viên mới
Tham gia
16/3/07
Bài viết
24
Được thích
3
Dear All,
Nhờ mọi người giúp em:
- Em cần mở nhiều file trong cùng thư mục mà thỏa điều kiện về tên file (không cần mở tất cả file trong thư mục đó).
- Ví dụ: cần mở file chứa từ khóa 'final2022w30' => cần mở 4 file (01MOT, 02HAI, 03BA, 04BON); 2 file còn lại không thỏa điều kiện nên không mở.
1660489874395.png
Em tìm được đoạn code này nhưng nó không mở hết 4 file; debug trong Watches em thấy cứ chạy 1 dòng lệnh là Dir sẽ nhảy giá trị khác nên sẽ bỏ qua các file tiếp theo.
Em thử thay đổi các kiểu rồi, nhưng vẫn không hiệu quả.

Mã:
Sub vba_open_multiple_workbooks_folder()
    Dim wb As Workbook
    Dim strFolder As String
    Dim strFile As String
        strFolder = "C:\TEST\Data\"
        strFile = Dir(strFolder & "*.xls*")
        Do While strFile <> ""
            Set wb = Workbooks.Open(strFolder & strFile)
            strFile = Dir    '--> vong 2 se thanh file 03BA, ma khong phai la 02HAI.. ??
        Loop
End Sub

Nhờ mọi người sửa giúp em để code chạy đúng mong muốn.
Em cảm ơn.
 
Code của bạn là mở hết 6 tập tin có trong thư mục chứ chả bỏ qua tâp tin nào.
--------
1. Tìm tất cả các tập tin có định dạng ".xls" rồi kiểm tra và chỉ lấy những kết quả có chứa "final2022w30" - If InStr(1, strFile, findvalue, vbTextCompare) > 0 Then ...
Mã:
Sub vba_open_multiple_workbooks_folder()
Dim wb As Workbook
Dim strFolder As String
Dim strFile As String, findvalue As String
    findvalue = "final2022w30"
    strFolder = "C:\TEST\Data\"
    strFile = Dir(strFolder & "*.xls*")
    Do While strFile <> ""
        If InStr(1, strFile, findvalue, vbTextCompare) > 0 Then Set wb = Workbooks.Open(strFolder & strFile)
        strFile = Dir    '--> vong 2 se thanh file 03BA, ma khong phai la 02HAI.. ??
    Loop
End Sub

2. Chỉ tìm đúng các tập tin có dạng "*final2022w30*.xls*"
Mã:
Sub vba_open_multiple_workbooks_folder()
Dim wb As Workbook
Dim strFolder As String
Dim strFile As String
    strFolder = "C:\TEST\Data\"
    strFile = Dir(strFolder & "*final2022w30*.xls*")
    Do While strFile <> ""
        Set wb = Workbooks.Open(strFolder & strFile)
        strFile = Dir    '--> vong 2 se thanh file 03BA, ma khong phai la 02HAI.. ??
    Loop
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom