lấy đường dẫn của một số file bất kỳ trong thư mục

Liên hệ QC

thoai

Thành viên thường trực
Tham gia
5/8/06
Bài viết
225
Được thích
25
Mình có file exce này có code mở liệt kê danh sách các file (listfile) trong thư mục và code chọn file (chonfile) theo chỉ định có sẵn ( mặc định là .doc) và liệt kê ra đường tên file từ cell A1 trở xuống. Mình muốn hỏi các Anh có code nào kết hợp mở danh sách và chọn nhiều file bất kỳ trong thư mục và liệt kê đường dẫn các file này ra không ah
 

File đính kèm

  • chon duong dan file.xlsm
    17.3 KB · Đọc: 23
Mình có file exce này có code mở liệt kê danh sách các file (listfile) trong thư mục và code chọn file (chonfile) theo chỉ định có sẵn ( mặc định là .doc) và liệt kê ra đường tên file từ cell A1 trở xuống. Mình muốn hỏi các Anh có code nào kết hợp mở danh sách và chọn nhiều file bất kỳ trong thư mục và liệt kê đường dẫn các file này ra không ah
Tôi chỉnh lại đoạn listfile xem đúng ý bạn không.
Mã:
Sub listfile()
Dim xls As Excel.Worksheet
Dim fd As FileDialog
Dim vItem As Variant
Dim mg1 As Range
Dim mg2 As Range
Dim source As String
Dim i As Long, arr_res()
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Set xls = ActiveSheet
With fd
    .Filters.Add "All Files", "*.docx;*.doc;*.xls;*.xlsx;*.jpg; *.jpeg", 1
    .FilterIndex = 1
    .AllowMultiSelect = True
    If .Show = -1 Then
        For i = 1 To .SelectedItems.Count
            ReDim Preserve arr_res(i - 1)
            arr_res(i - 1) = .SelectedItems.Item(i)
        Next
        [a1].Resize(UBound(arr_res) + 1, 1) = WorksheetFunction.Transpose(arr_res)
    End If
End With
  Set fd = Nothing
End Sub
 
Upvote 0
Tôi chỉnh lại đoạn listfile xem đúng ý bạn không.
Mã:
Sub listfile()
Dim xls As Excel.Worksheet
Dim fd As FileDialog
Dim vItem As Variant
Dim mg1 As Range
Dim mg2 As Range
Dim source As String
Dim i As Long, arr_res()
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Set xls = ActiveSheet
With fd
    .Filters.Add "All Files", "*.docx;*.doc;*.xls;*.xlsx;*.jpg; *.jpeg", 1
    .FilterIndex = 1
    .AllowMultiSelect = True
    If .Show = -1 Then
        For i = 1 To .SelectedItems.Count
            ReDim Preserve arr_res(i - 1)
            arr_res(i - 1) = .SelectedItems.Item(i)
        Next
        [a1].Resize(UBound(arr_res) + 1, 1) = WorksheetFunction.Transpose(arr_res)
    End If
End With
  Set fd = Nothing
End Sub
chính xác rồi bạn nhưng bạn có thể chỉnh cho mình chọn tối đa chỉ 5 file thôi nhé và Mình muốn khi liệt kê đường dẫn ra nó sẽ hiển thị như sau: A1 là tên ổ đĩa (D:\), cột B1 là tên thư mục (tên thư mục chứa) và C1 là tên file ( nha cua .....) nhờ bạn chỉnh lại code dùm .
 
Upvote 0
Web KT
Back
Top Bottom