Tạo macro biết được kích cỡ file (bao nhiêu kb) excel trong một folder

Liên hệ QC

lehuutridt1989

Thành viên mới
Tham gia
5/9/12
Bài viết
6
Được thích
0
Xin chào cả nhà, hôm nay mình có một bài toán cần giải quyết như sau:
Có một folder, trong đó chứa nhiều file excel khác nhau. Có các kích cỡ file là
35kb,15kb,31kb. Mình chỉ muốn copy tất cả những file có kích thước file là 31kb.
Mong các bạn giúp đỡ để giải quyết vấn đề trên. Cảm ơn các bạn rất nhiều!!
Thân mến!
 
Xin chào cả nhà, hôm nay mình có một bài toán cần giải quyết như sau:
Có một folder, trong đó chứa nhiều file excel khác nhau. Có các kích cỡ file là
35kb,15kb,31kb. Mình chỉ muốn copy tất cả những file có kích thước file là 31kb.
Mong các bạn giúp đỡ để giải quyết vấn đề trên. Cảm ơn các bạn rất nhiều!!
Thân mến!

1> Để lấy Size của 1 file, ta dùng:
Mã:
Dim fleSize As Long
With CreateObject("Scripting.FileSystemObject")
  fleSize = .GetFile("duong dan file").Size
End With
Trong đó fileSize được tính bằng đơn vị Byte. Để đổi sang đơn vị KB, ta chia fleSize cho 1024 nữa là được
2> Để lấy list file trong folder, ta dùng:
Mã:
Function GetListFile(ByVal Folder As String, ByVal Search As String, ByVal InSub As Boolean)
  Dim sComm As String, tmp As String, tmpFile, Arr
  On Error Resume Next
  If Right(Folder, 1) <> "\" Then Folder = Folder & "\"
  Folder = """" & Folder & """"
  With CreateObject("Scripting.FileSystemObject")
    tmpFile = .GetTempName
    sComm = "DIR " & Folder & "*" & Search & "* /ON /B /A-D " & IIf(InSub, "/S", " ") & " >" & tmpFile
    CreateObject("Wscript.Shell").Run "cmd /u /c " & sComm, 0, True
    With .OpenTextFile(tmpFile, 1, , -2)
      tmp = Trim(.ReadAll)
      If Right(tmp, 2) = vbCrLf Then tmp = Left(tmp, Len(tmp) - 2)
      If Len(tmp) Then GetListFile = Split(tmp, vbCrLf)
      .Close
    End With
  End With
  Kill tmpFile
End Function
Hàm GetListFile có cú pháp
GetListFile(Tên thư muc, từ khóa tìm kiếm, Bao gồm thư mục con hay không)
Ví dụ: Để lấy danh sách các file xls trong thư mục D:\Excel và không tính thư mục con, ta dùng
Arr = GetListFile("D:\Excel", "*.xls", False)
Biến Arr trả về kết quả là mảng 1 chiều chưa các phần tử là list của các đường dẫn file tìm thấy
3> Để copy file từ nơi này sang nơi khác, ta dùng:
Mã:
With CreateObject("Scripting.FileSystemObject")
  .CopyFile "Nguồn file", "nơi copy đến", có ghi đè hay không?
End With
Nguyên liệu đã có sẵn, phần chế biến thế nào là thuộc về bạn nhé
 
Upvote 0
Cảm ơn sự chỉ dẫn rất chi tiết, mình sẽ cố gắng "chế biến"
 
Upvote 0
Web KT
Back
Top Bottom