Hiển thị file từ folder vào listbox Form

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Taiclub

Thành viên mới
Tham gia
6/2/17
Bài viết
28
Được thích
1
Em chào các thầy và anh chị diễn đàn a. Em có tìm được 1 code VBA hiển thị các file có trong thư mực rất hay ạ.
Các thầy và anh chị diễn đàn cho em hỏi là:
1. Mình có thể giới hạn hiển thị file Excel được không ạ.
2. Mình có thể đưa vào listbox của Form và có thể import các file được chọn không ạ.
Em cảm ơn các thầy và anh chị diễn đàn ạ.

Private FSO As New Scripting.FileSystemObject Sub RunThruFiles(Path As String) Dim fldr As Scripting.folder Dim sfldr As Scripting.folder Dim fil As Scripting.File Set fldr = FSO.GetFolder(Path) For Each fil In fldr.Files ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = fil.Name Next fil For Each sfldr In fldr.SubFolders RunThruFiles sfldr.Path Next sfldr End Sub Sub GetFiles() 'the path in parenthesis below will be your main path RunThruFiles ("C:\Windows") End Sub
 

File đính kèm

  • Import.xlsm
    48.4 KB · Đọc: 9
Em chào các thầy và anh chị diễn đàn a. Em có tìm được 1 code VBA hiển thị các file có trong thư mực rất hay ạ.
Các thầy và anh chị diễn đàn cho em hỏi là:
1. Mình có thể giới hạn hiển thị file Excel được không ạ.
2. Mình có thể đưa vào listbox của Form và có thể import các file được chọn không ạ.
Em cảm ơn các thầy và anh chị diễn đàn ạ.

Private FSO As New Scripting.FileSystemObject Sub RunThruFiles(Path As String) Dim fldr As Scripting.folder Dim sfldr As Scripting.folder Dim fil As Scripting.File Set fldr = FSO.GetFolder(Path) For Each fil In fldr.Files ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = fil.Name Next fil For Each sfldr In fldr.SubFolders RunThruFiles sfldr.Path Next sfldr End Sub Sub GetFiles() 'the path in parenthesis below will be your main path RunThruFiles ("C:\Windows") End Sub
Sao không đưa xuống sheet luôn mà phải đưa vào listbox cho tốn công sức ra bạn
 
Upvote 0
Em chào các thầy và anh chị diễn đàn a. Em có tìm được 1 code VBA hiển thị các file có trong thư mực rất hay ạ.
Các thầy và anh chị diễn đàn cho em hỏi là:
1. Mình có thể giới hạn hiển thị file Excel được không ạ.
2. Mình có thể đưa vào listbox của Form và có thể import các file được chọn không ạ.
Em cảm ơn các thầy và anh chị diễn đàn ạ.

Private FSO As New Scripting.FileSystemObject Sub RunThruFiles(Path As String) Dim fldr As Scripting.folder Dim sfldr As Scripting.folder Dim fil As Scripting.File Set fldr = FSO.GetFolder(Path) For Each fil In fldr.Files ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = fil.Name Next fil For Each sfldr In fldr.SubFolders RunThruFiles sfldr.Path Next sfldr End Sub Sub GetFiles() 'the path in parenthesis below will be your main path RunThruFiles ("C:\Windows") End Sub
Sao không đưa xuống sheet luôn mà phải đưa vào listbox cho tốn công sức ra bạn
Dạ em muốn đưa vào listbox để hiển thị và tìm kiếm cho dễ ạ và để mở file đó luôn ạ.
Cho e hỏi có là có thể chỉ hiển thị file Excel không ạ. Chứ hiển thị toàn bộ file thư mục thì nhiều lắm ạ. Em cảm ơn ạ.
 
Upvote 0
Bạn cho thêm điều kiện xem nó có phải excel vào vòng lặp đầu thử xem
Mã:
if instr(file.Name, ".xls") > 0 then
...
end if
Lâu không viết VBA nên mình cũng không nhớ rõ cú pháp như vậy đúng hay không, nhưng đại khái là tìm chuỗi ".xls" có trong tên file không, có thì in ra kết quả, không thì tiếp tục
 
Upvote 0
Bạn cho thêm điều kiện xem nó có phải excel vào vòng lặp đầu thử xem
Mã:
if instr(file.Name, ".xls") > 0 then
...
end if
Lâu không viết VBA nên mình cũng không nhớ rõ cú pháp như vậy đúng hay không, nhưng đại khái là tìm chuỗi ".xls" có trong tên file không, có thì in ra kết quả, không thì tiếp tục
Em đã lọc được những file Excel rồi ạ.
Cho em hỏi thêm là code dưới đây chỉ hiện 1 thư mục chính còn thư mục con thì không hiện file trong thư mục con. Còn thiếu gì nữa mong các thầy giúp em ạ.
Mã:
Function listFiles(ByVal sPath As String, Optional ExtFilter As String = "*.*") As Variant
    Dim oFSO As Object, oFolder As Object, oFiles As Object, oFile As Object
    Dim vaArray As Variant, i As Long

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(sPath)
    Set oFiles = oFolder.Files

    If oFiles.Count = 0 Then Exit Function

    ReDim vaArray(1 To oFiles.Count)
    i = 1

    For Each oFile In oFiles
        If InStr(oFile.Name, ".xls") > 0 Then
            vaArray(i) = oFile.Name
            i = i + 1

        End If
    Next

    listFiles = vaArray

End Function
 
Upvote 0
Web KT

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

Back
Top Bottom