Page 1 of 1

ย้าย file แบบมีเงื่อนไข

Posted: Mon Nov 14, 2022 3:27 pm
by predee16
ผมต้องการเพิ่ม code ย้าย file แบบมีเงื่อนไข คือตัวอักษร 3 ตัวท้าย แยกไปตาม folder ที่กำหนดไว้ 3 folder ตามตัวอย่างแนบครับ

Code: Select all

Sub FSOMoveFile()

Dim OldPath As String
    Dim NewPath As String
    Dim LoopFile As String
    Dim FileExt() As String
    OldPath = "D:\DataPayment\"
    NewPath = "D:\RunPayment\MB\"
    LoopFile = Dir(OldPath & "*.*")
    Do While LoopFile <> ""
        FileExt = Split(LoopFile, ".")
        Select Case FileExt(UBound(FileExt))
        Case "xlsx", "xls", "bmp"
            Name OldPath & LoopFile As NewPath & LoopFile
        End Select
        LoopFile = Dir
    Loop


End Sub

Image

Re: ย้าย file แบบมีเงื่อนไข

Posted: Mon Nov 14, 2022 5:25 pm
by snasui
:D กรุณาอธิบายว่าสามตัวท้ายคืออะไรบ้าง ในภาพตัวเล็กไป อ่านลำบากครับ

นอกจากนี้ช่วยแนบไฟล์ที่มี Code ข้างต้นมาด้วย จะได้สะดวกต่อการตอบของเพื่อนสมาชิกครับ

Re: ย้าย file แบบมีเงื่อนไข

Posted: Mon Nov 14, 2022 6:02 pm
by predee16
เงื่อนไขคืออักษรท้าย 3 ตัวไม่เอา $
เช่นชื่อไฟล์
1092_G_VEN_18112022_kan$
= kan
ย้ายไปที่ folder TV
รายละเอียดตัวอย่างอยู่ใน file แนบ ครับ

Re: ย้าย file แบบมีเงื่อนไข

Posted: Mon Nov 14, 2022 7:57 pm
by snasui
:D ไฟล์แนบมีแต่ภาพ ไม่ได้แนบ Code มาด้วย กรุณาแนบไฟล์ที่มี Code มาอีกรอบครับ

Re: ย้าย file แบบมีเงื่อนไข

Posted: Tue Nov 15, 2022 11:10 am
by predee16
เรียน อาจารย์ ผมแนบไฟล์ที่แนบ code ไว้ (แต่ไม่แน่ใจว่า Code จะติดมากับ file หรือเปล่า) ผมจึงได้แนบ Code ไว้ที่ Sheet2 ครับ

Re: ย้าย file แบบมีเงื่อนไข

Posted: Tue Nov 15, 2022 12:57 pm
by snasui
:D เพื่อความสะดวกในการตอบปัญหาจำเป็นต้องแนบ Code มาในตำแหน่งที่พร้อมทดสอบได้ทันที

ไฟล์ล่าสุดไม่พบว่ามี Code อยู่ใน Module ใด ๆ

Module จะอยู่ใน VBE การเปิด VBE สามารถกดแป้น Alt+F11

การ Insert Module เข้าเมนู Insert > Module > เขียนหรือนำ Code มาวาง

ลองแนบไฟล์มาใหม่โดยต้องมี Code อยู่ใน VBE เรียบร้อยแล้ว กรุณาตรวจสอบว่ามี Code แล้วเรียบร้อยก่อนแนบมาครับ

ปกติผู้ที่จะใช้ Code VBA ได้จะต้องทราบสิ่งเหล่านี้เป็นเบื้องต้น ไม่เช่นนั้นยังไม่ควรใช้งาน VBA จะต้องศึกษามาเป็นลำดับก่อนครับ

Re: ย้าย file แบบมีเงื่อนไข

Posted: Tue Nov 15, 2022 5:04 pm
by predee16
แนบ file ตามที่แนะนำครับ

Re: ย้าย file แบบมีเงื่อนไข

Posted: Tue Nov 15, 2022 8:17 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub MoveFile()
    Dim OldPath As String
    Dim NewPath As String
    Dim LoopFile As String
    Dim FileExt As Variant
    Dim d As String
    
    OldPath = "D:\DataPayment\"
    LoopFile = Dir(OldPath & "*.*")
    Do While LoopFile <> ""
        If InStr(LoopFile, "$") Then
            FileExt = Split(LoopFile, "$")(0)
            FileExt = Split(FileExt, "_")(UBound(Split(FileExt, "_")))
            Select Case FileExt
                Case "rap", "jar"
                    d = "ON"
                Case "cha", "kan", "rat"
                    d = "TV"
                Case "nar", "var"
                    d = "MB"
            End Select
            NewPath = "D:\RunPayment\" & d & "\"
            Name OldPath & LoopFile As NewPath & LoopFile
        End If
        LoopFile = Dir
    Loop
End Sub

Re: ย้าย file แบบมีเงื่อนไข

Posted: Wed Nov 16, 2022 9:49 am
by predee16
ขอบคุณอย่างสูงครับ