Page 1 of 1

อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อยู่

Posted: Wed May 17, 2017 10:00 am
by rong8182
รบกวนสอบถามครับ พอดีติดปัญหา ครับ พอแยกเป็นไฟล์ ได้แล้ว แต่สูตรเดิม ไม่ตามมาครับ

อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อยู่ ครับ

สูตร Macro จากไฟล์ เดิม
Sub Auto_Open()

Application.ScreenUpdating = False

For Each ws In Sheets

   With ws
       .Unprotect Password:="SumProduct"
       .Protect Password:="SumProduct", UserInterfaceOnly:=True
       .EnableOutlining = True
    End With

Next ws

Application.ScreenUpdating = True

End Sub

สูตรแยก ไฟล์ ครับ
Sub test()
Dim n As Integer
For n = 1 To Sheets.Count - 1
Windows("ใช้ตามชื่อไฟล์.xlsm").Activate
ActiveSheet.Select
ActiveSheet.Move
Next n
End Sub

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Wed May 17, 2017 10:16 am
by puriwutpokin
ควรแนบไฟล์ตัวอย่างพร้อมโค้ด มาด้วยครับ แล้วติดที่โค้ดใด ให้แจ้งพร้อมตัวอย่างที่แจ้งครับ

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Wed May 17, 2017 10:54 am
by rong8182
ผมได้แนบไฟล์มาให้ ครับ

จากตัวอย่าง ผมต้องการแยกไฟล์ โดยให้ สูตร Macro เดิมยังอยู่ ต้องทำอย่างไรหรอครับ

ผมให้สูตรแยกไฟล์ ดังนี้

สูตรแยก ไฟล์ ครับ
Sub test()
Dim n As Integer
For n = 1 To Sheets.Count - 1
Windows("book1.xlsm").Activate
ActiveSheet.Select
ActiveSheet.Move
Next n
End Sub

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Wed May 17, 2017 11:17 am
by puriwutpokin
เท่าที่ทราบถ้าต้องการให้ Sheet ที่ Move ไปมีโค้ดไปด้วย คงต้องใส่โค้ดไว้ในชีทนั้นๆเลยครับ คงไม่สามารถ นำ Module ไปได้จากการ Move
ครับ

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Wed May 17, 2017 11:36 am
by rong8182
รบกวนช่วยแนะนำหน่อย ครับ ว่าต้องทำยังไง ครับ

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Wed May 17, 2017 1:52 pm
by pong2532
1.Export Module1 ไปเก็บไว้ก่อน
2.แทรก Code Import Module1.bas
ตัวอย่าง Code ครับ

Code: Select all

Sub test()
Dim n As Integer
For n = 1 To Sheets.Count - 1
Windows("ใช้ตามชื่อไฟล์.xlsm").Activate
ActiveSheet.Select
ActiveSheet.Move
Application.VBE.ActiveVBProject.VBComponents.import "C:\test\Module1.bas"
Next n
End Sub

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Wed May 17, 2017 4:50 pm
by rong8182
โทดนะคับ
Export Module1 ไปเก็บไว้ก่อน นี่ทำยังไงหรอครับ

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Wed May 17, 2017 8:28 pm
by puriwutpokin
ปรับโค้ดตามนี้ครับ

Code: Select all

Sub test()
Dim fName As String
Dim n As Integer
fName = "Module1.bas"
ThisWorkbook.VBProject.VBComponents("Module1").Export fName
For n = 1 To Sheets.Count - 1
ThisWorkbook.Activate
ActiveSheet.Select
ActiveSheet.Move
ActiveWorkbook.VBProject.VBComponents.Import fName
Next n
End Sub

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Thu May 18, 2017 9:12 am
by rong8182
ขอบคุณ ครับ

Re: อยากแยกแต่ละ sheet ใน excel ประมาณ 30 sheet ออกเป็นแต่ละไฟล์ ครับ โดยที่แยก มาแล้ว สูตรMacro เดิม ยังสามารถใช้ได้ อย

Posted: Thu May 18, 2017 10:47 am
by snasui
rong8182 wrote:โทดนะคับ
Export Module1 ไปเก็บไว้ก่อน นี่ทำยังไงหรอครับ
:D ข้อความที่ผมระบายสีไว้นั้นผิดกฎการใช้บอร์ดข้อ 1 ด้านบน กรุณางดใช้ข้อความลักษณะนี้ นอกจากนี้การโพสต์ Code ควรโพสต์ให้แสดงเป็น Code กรุณาอ่านกฎการใช้บอร์ดข้อ 5 ด้านบนครับ