คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 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 นั้นๆครับ
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 นั้นๆครับ
แสดงความคิดเห็น
รบกวน ช่วยดู code Visual basic ซึ่งเป็น Macro ใน Excel ให้ด้วยครับ
แต่ประสบข้อติดขัด นิดนึงตรงที่ ไม่สามารถกำหนดหรือควบคุมได้ว่า
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