Page 1 of 1

Code เปิดไฟล์และ Copy มาวางค่ะ

Posted: Mon Dec 19, 2016 10:39 pm
by suka
เรียนอาจารย์และท่านผู้รู้ช่วยค่ะ

จากตัวอย่างไฟล์แนบโค้ดด้านล่างวางไว้ที่ ThisWorkbook ของไฟล์ Form เพื่อเปิดไฟล์ AR.xlsx และ WP.xlsx ค่ะ

ความต้องการให้ Copy ข้อมูลไฟล์ AR.xlsx วางที่ชีท AR_DT จากไฟล์ WP.xlsx วางที่ชีท WP_DT ไฟล์ Form ค่ะ

Code: Select all

Private Sub Workbook_Open()
        Workbooks.Open Filename:="C:\Documents and Settings\Administrator\Desktop\Test\AR.xlsx"
         Workbooks.Open Filename:="C:\Documents and Settings\Administrator\Desktop\Test\WP.xlsx"
End Sub
ติดปัญหาไม่ทราบจะวางโค้ดด้านล่างทั้งสองโค้ดอย่างไรให้สามารถ Copy ข้องมูลมาวางได้อย่างไรค่ะ
ขอรบกวนแนะนำวางโค้ดหรือควรปรับอย่าไรค่ะ

Code: Select all

Sub Database_Copy()            
        Dim wbShare As Workbook
        Dim formBook As Workbook
        Set formBook = ThisWorkbook
        Set wbShare = Workbooks("AR.xlsx")
        ActiveSheet.UsedRange.Copy
        formBook.Activate
        Sheets("AR_DT").Select
        Range("A1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        wbShare.Save
        wbShare.Close
End Sub
และ

Code: Select all

Sub Database_Copy2()            
        Dim wbShare As Workbook
        Dim formBook As Workbook
        Set formBook = ThisWorkbook
        Set wbShare = Workbooks("WP.xlsx")
        ActiveSheet.UsedRange.Copy
        formBook.Activate
        Sheets("WP_DT").Select
        Range("A1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        wbShare.Save
        wbShare.Close
        Sheets("Form").Select
End Sub

Re: Code เปิดไฟล์และ Copy มาวางค่ะ

Posted: Mon Dec 19, 2016 10:45 pm
by snasui
:D Code ทึ่เขียนมานั้นติดปัญหาที่บรรทัดไหน โปรแกรมฟ้องว่าอย่างไร ช่วยแจ้งรายละเอียดมาด้วยครับ

Re: Code เปิดไฟล์และ Copy มาวางค่ะ

Posted: Mon Dec 19, 2016 11:04 pm
by suka
อาจารย์คะ Code ไม่ติดปัญหาค่ะ แต่ Form ที่ใช้กรอกข้อมูลเพื่อบันทึก ต้องใช้สูตรดึงข้อมูลจากฐานข้อมูลแชร์ไฟล์มา เพื่อลดปัญหาการทำงานช้าของระบบค่ะ จึงใช้วิธี Copy ข้อมูลจากฐานข้อมูลมาวางที่ไฟล์กรอกข้อมูลและเมื่อทำงานเสร็จก่อนปิด Form กรอกข้อมูลได้เคลียร์ข้อมูลออกจนเหลือ Form เปล่าค่ะ

เดิมได้ใช้การสร้างปุ่มวางโค้ด Copy ข้อมูลตอนเปิดไฟล์ค่ะ หากไม่ใช้ปุ่มเปิดสามารถวางโค้ดไว้ในไฟล์กรอกข้อมูลเลยได้ไหมคะ

Re: Code เปิดไฟล์และ Copy มาวางค่ะ

Posted: Mon Dec 19, 2016 11:09 pm
by snasui
:D อ่านแล้วไม่กระจ่างครับ

ที่บอกว่าลดปัญหาการช้าของระบบ ช้าขนาดไหน ต้องรอนานเท่าใดครับ

เดิมที่มีปุ่มสำหรับการ Copy แล้วใช้ได้ก็ควรจะใช้ลักษณะนั้น หากต้องการให้เปิดไฟล์แล้ว Copy ก็ให้ใช้ Call ไปยัง Procedure ที่ใช้ Copy จาก Procedure ที่ใช้เปิดไฟล์ ซึ่งเข้าใจว่าเคยทราบการใช้งานลักษณะนี้เพราะเคยถามตอบกันมาก่อนหน้านี้แล้วครับ

การเขียน Code จะวางไว้ที่ไหน อย่างไร ได้ทั้งสิ้นครับ ขึ้นอยู่กับความต้องการ ขอให้มีวิธีเรียกใช้ จะวางไว้ที่ไหนก็ได้ทั้งนั้นครับ

Re: Code เปิดไฟล์และ Copy มาวางค่ะ

Posted: Mon Dec 19, 2016 11:41 pm
by suka
เรื่องช้าปรับได้ดีขึ้นมากแล้วค่ะอาจารย์

หากติดมีปัญหาอื่นค่อยมาขอความช่วยเหลือใหม่ค่ะ ขอบคุณค่ะ

Re: Code เปิดไฟล์และ Copy มาวางค่ะ

Posted: Tue Dec 20, 2016 12:24 am
by yodpao.b

Code: Select all

Private Sub Workbook_Open()
        Workbooks.Open Filename:="C:\Users\8473T\Desktop\AR.xlsx"
        Workbooks.Open Filename:="C:\Users\8473T\Desktop\WP.xlsx"
        Call Database_Copy
        Call Database_Copy2
         
End Sub
Code ด้านบนนี้อยู่ในไฟล์ Form (thisworkbook)


ส่วนด้านล่างอยู่ใน module

Code: Select all

Sub Database_Copy2()
        Dim wbShare As Workbook
        Dim formBook As Workbook
        Set formBook = ThisWorkbook
        Set wbShare = Workbooks("WP.xlsx")
        ActiveSheet.UsedRange.Copy
        formBook.Activate
        Sheets("WP_DT").Select
        Range("A1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        wbShare.Save
        wbShare.Close
        Sheets("Form").Select
End Sub

Sub Database_Copy()
        Dim wbShare As Workbook
        Dim formBook As Workbook
        Set formBook = ThisWorkbook
        Set wbShare = Workbooks("AR.xlsx")
        ActiveSheet.UsedRange.Copy
        formBook.Activate
        Sheets("AR_DT").Select
        Range("A1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        wbShare.Save
        wbShare.Close
End Sub

Re: Code เปิดไฟล์และ Copy มาวางค่ะ

Posted: Tue Dec 20, 2016 6:50 pm
by suka
ขอบคุณค่ะคุณ yodpao.b