รบกวนสอบถาม ปรับCODE VBA Unzip ไฟล์หน่อยครับ
Posted: Wed Oct 11, 2023 9:01 am
CODE VBA Unzip ไฟล์หน่อยครับ คือ ไฟล์จะถูกแยกไปยังโฟลเดอร์ที่อาจมีไฟล์บางไฟล์ที่มีชื่อไฟล์เหมือนกันอยู่แล้วป๊อปอัปของ Windows จะแจ้ง ซึ่งไฟล์มัเยอะอาจจะเป็นร้อยร้อยครั้งหรือมากกว่านั้นในระหว่างการรันมาโครหนึ่งครั้ง แต่อยากให้ "คัดลอก แต่เก็บทั้งสองไฟล์" ได้หรือไม่
Code: Select all
Sub Unzip4()
Dim FSO As Object
Dim oApp As Object
Dim Fname As Variant
Dim FileNameFolder As Variant
Dim DefPath As String
Dim strDate As String
Dim I As Long
Dim num As Long
Fname = Application.GetOpenFilename(filefilter:="Zip Files (*.zip), *.zip", _
MultiSelect:=True)
If IsArray(Fname) = False Then
Else
DefPath = Application.DefaultFilePath
If Right(DefPath, 1) <> "\" Then
DefPath = DefPath & "\"
End If
strDate = Format(Now, " dd-mm-yy h-mm-ss")
FileNameFolder = DefPath & "MyUnzipFolder " & strDate & "\"
MkDir FileNameFolder
Set oApp = CreateObject("Shell.Application")
For I = LBound(Fname) To UBound(Fname)
num = oApp.Namespace(FileNameFolder).items.Count
oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace(Fname(I)).items
Next I
MsgBox "ตรวจสอบไฟล์ของคุณที่:" & FileNameFolder
On Error Resume Next
Set FSO = CreateObject("scripting.filesystemobject")
FSO.deletefolder Environ("Temp") & "\Temporary Directory*", True
End If
End Sub