snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
สวัสดีค่ะ จากการที่อ้อยเคยเขียนคำสั่ง vba จากไฟล์ .xlsm ให้แยกชีทได้ครั้งเดียวด้วย code
เขียนใน
Sub Macro1()
Dim i As Integer
For i = 1 To Workbooks("sheet.xlsm").Worksheets.Count
Workbooks("sheet.xlsm").Worksheets(i).Copy
Next i
End Sub
ที่อยู่ที่ต้องการนำไปเก็บค่ะ
C:\Documents and Settings\supitsara.p\My Documents\NCR
จึงเขียนออกมาเป็น
Sub Macro1()
Dim i As Integer
For i = 1 To Workbooks("1.xlsm").Worksheets.Count
Workbooks("1.xlsm").Worksheets(i).Copy
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\supitsara.p\My Documents\NCR" & ActiveSheet.Range("O4").Value &.xls"
Activesheet.Name = Range("O4").Value
Next i
End Sub
Sub Macro1()
Dim i As Integer
For i = 1 To Workbooks("1.xlsm").Worksheets.Count
Workbooks("1.xlsm").Worksheets(i).Copy
Activesheet.Name = Range("O4").Value
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\supitsara.p\My Documents\NCR" & ActiveSheet.Range("O4").Value &".xls"
Next i
End Sub
ได้แล้วค่ะ อาจารย์ อ้อยใช้แบบนี้ค่ะ
Sub Macro1()
Dim i As Integer
For i = 1 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Copy
'ActiveSheet.Name = Workbooks("sheet.xlsm").Sheets(i).Range("O4").Value
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Range("O4").Value & Range("j13").Value & ".xls", FileFormat:=xlExcel8, CreateBackup:=False
ActiveWorkbook.Close True
Next i
End Sub
ผลลัพธ์ดีมาก เขาจะ save ให้ด้วยชื่อไฟล์ที่ต้องการ แก้ไขชื่อ sheet ให้ด้วย และ save เป็น 2003 และ save ลง folders
ที่เราวางไฟล์ไว้เลย แล้วก็ปิดไฟล์ให้อัตโนมัติค่ะ ไม่ต้องมาคอยปิด และปิดไฟล์ได้ดีไม่มีปัญหาค่ะ