Page 1 of 1

รบกวนสอบถาม ปรับCODE VBA Unzip ไฟล์หน่อยครับ

Posted: Wed Oct 11, 2023 9:01 am
by prasertLasong
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


Re: รบกวนสอบถาม ปรับCODE VBA Unzip ไฟล์หน่อยครับ

Posted: Wed Oct 11, 2023 9:30 am
by snasui
prasertLasong wrote: Wed Oct 11, 2023 9:01 am แต่อยากให้ "คัดลอก แต่เก็บทั้งสองไฟล์" ได้หรือไม่
:D Windows ไม่อนุญาตให้เก็บไฟล์ที่ชื่อซ้ำกันไว้ใน Folder เดียวกัน ลองออกแบบและเขียนมาเองก่อนว่ากำหนดให้เก็บไฟล์ในลักษณะไหน อย่างไร จะได้ดูต่อไปจากนั้นครับ

Re: รบกวนสอบถาม ปรับCODE VBA Unzip ไฟล์หน่อยครับ

Posted: Wed Oct 11, 2023 9:36 am
by prasertLasong
แล้วถ้าให้วางทับไฟล์ที่ชื่อเหมือนกันเลย โดยไม่ต้องมีป๊อปอัปของ Windows แจ้ง ได้ไหมครับ อาจารย์

Re: รบกวนสอบถาม ปรับCODE VBA Unzip ไฟล์หน่อยครับ

Posted: Wed Oct 11, 2023 9:42 am
by snasui
:D การปิดการแจ้งเตือนจะใช้ application.displayalert = false ครับ

ปกติเมื่อกำหนดเป็น false แล้ว หลังจบงานต้องปรับกลับมาเป็น true ไม่เช่นนั้นจะทำให้ไม่ได้รับการเตือนที่ควรเตือนครับ