Page 1 of 1

VBA แยกชีท แล้วตั้งชื่อตาม sheet name สูตร cell filename ขึ้น #value

Posted: Tue Jan 23, 2018 10:24 am
by npoolek
อาจารย์คะ มีเรื่องรบกวนค่ะ เบื้องต้นลองดูจาก web อาจารย์แล้วลองทำตาม แต่ติดปัญหา

สามารถแยกชีท ออกมา save ได้ตามปกติ แต่ มี สูตร cell filename ขึ้น #VALUE! ในชีทที่แยกออกมาค่ะ ไม่ทราบว่าเกิดจากอะไรค่ะ

File หลัก คือ test L ซึ่งใน file นี้ เขียน vba ประมาณนี้ค่ะ ในการแยกชีท

Sub Macro1()
Dim i As Integer
For i = 1 To Workbooks("Test L.xlsb").Worksheets.Count
Workbooks("Test L.xlsb").Worksheets(i).Copy

strFileName = ActiveSheet.Name & ".xlsx"

ActiveWorkbook.SaveAs Filename:="C:\Users\Nanthika\Desktop\booking\" & ActiveSheet.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close False

Next i
End Sub

ส่วน file ลูกที่ถูกแยกชีทมา save คือ AA,BB, CC, DD ค่ะ
ใน file cell b1 มีสูตร =RIGHT(CELL("filename",B1),LEN(CELL("filename",B1))-FIND("]",CELL("filename",B1))) แต่ผลลัพธ์ขึ้น #VALUE! ค่ะ

(แต่แนบมาแค่ AA and BB กับ file หลักนะคะ)

ขอบคุณคร้า

Re: VBA แยกชีท แล้วตั้งชื่อตาม sheet name สูตร cell filename ขึ้น #value

Posted: Tue Jan 23, 2018 9:10 pm
by snasui
:D การโพสต์ Code ให้ดูวิธีการในกฎการใช้บอร์ดข้อ 5 ด้านบน จะได้สะดวกในการอ่านและ Copy ไปทดสอบครับ

ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Sub Macro1()
    Dim i As Integer
    For i = 1 To Workbooks("Test L.xlsb").Worksheets.Count
        Workbooks("Test L.xlsb").Worksheets(i).Copy
        strFileName = ActiveSheet.Name & ".xlsx"
        ActiveWorkbook.Sheets(1).Range("b1").Value = ActiveWorkbook.Sheets(1).Name
        ActiveWorkbook.SaveAs Filename:="C:\Users\Nanthika\Desktop\booking\" & _
            ActiveSheet.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook
        ActiveWorkbook.Close False
    Next i
End Sub
ที่เกิด Error เนื่องจากเมื่อมีการคัดลอกชีต สูตร Indirect จะลบเครื่องหมายก้ามปูในชื่อไฟล์ทิ้งไปซึ่งเครื่องหมายก้ามปูเป็นอักขระจำเป็นในการหาชื่อชีตครับ

Re: VBA แยกชีท แล้วตั้งชื่อตาม sheet name สูตร cell filename ขึ้น #value

Posted: Wed Jan 24, 2018 9:02 am
by npoolek
:D ขอบคุณมากๆ เลยค่ะ อาจารย์ ทำได้แล้วค่ะ

ขออภัยเรื่อง โพสต์ code นะคะ :thup: