รบกวน ช่วยดู code Visual basic ซึ่งเป็น Macro ใน Excel ให้ด้วยครับ

กระทู้คำถาม
คือ Code ดังกล่าว ได้มาจากผู้รู้ท่านหนึ่งใน pantip เมื่อนานมาแล้ว
แต่ประสบข้อติดขัด นิดนึงตรงที่ ไม่สามารถกำหนดหรือควบคุมได้ว่า
file ที่จะ save นั้น ให้ไป save ไว้ที่ใด
Code ดังกล่าว ตามข้างล่างครับ (ขอบคุณล่วงหน้าครับ)

Sub SaveEachWS()
Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets
ws.Copy
ActiveWorkbook.SaveAs Filename:=ws.Name
ActiveWorkbook.Close
Next ws

End Sub
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
ผมใช้ macro นี้ครับ

Sub SaveShtsAsBook()
    Dim Sheet As Worksheet, SheetName$, MyFilePath$, N&
    MyFilePath$ = ActiveWorkbook.Path & "\" & _
    Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
         '     End With
        On Error Resume Next '<< a folder exists
        MkDir MyFilePath '<< create a folder
        For N = 1 To Sheets.Count
            Sheets(N).Activate
            SheetName = ActiveSheet.Name
            Cells.Copy
            Workbooks.Add (xlWBATWorksheet)
            With ActiveWorkbook
                With .ActiveSheet
                    .Paste
                    .Name = SheetName
                    [A1].Select
                End With
                 'save book in this folder
                .SaveAs Filename:=MyFilePath _
                & "\" & SheetName & ".xls"
                .Close SaveChanges:=True
            End With
            .CutCopyMode = False
        Next
    End With
    Sheet1.Activate
End Sub

พอเรา Run แล้วมันจะสร้าง folder ที่ชื่อเดียวกับไฟล์ xls ตั้งต้นขึ้นมา แล้วจะ save worksheet แต่ละอัน ไว้ใน folder นั้นๆครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่