Page 1 of 1

VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 1:58 pm
by hs6nfg@gmail.com
VBA รัน module1 และ module2 ต่อกันเขียนโค๊ดแบบไหนครับ

Re: VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 3:22 pm
by snasui
:D กรุณาแนบไฟล์ตัวอย่างที่ลองทำมาเองแล้ว จะได้ตอบต่อไปจากนั้นครับ

Re: VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 4:49 pm
by hs6nfg@gmail.com
ตัวอย่างที่รันแยกครับอยากรันครั้งเดียวได้ไหม
401.7z
ครัย

Re: VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 5:14 pm
by snasui
:D สร้าง Procedure ขึ้นมาใหม่เพื่อ Call Procedure ที่ต้องการแล้วค่อย Assign ให้กับปุ่มดังตัวอย่าง Code และไฟล์แนบด้านล่างครับ

Code: Select all

Sub Main()
    Call BY_ID
    Call BY_MDL
End Sub

Re: VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 5:43 pm
by hs6nfg@gmail.com
ลองรันแล้วติดขัดครับอาจาร์ย

Re: VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 6:01 pm
by hs6nfg@gmail.com
ซูมใกล้ๆครับ

Re: VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 6:07 pm
by hs6nfg@gmail.com
ถ้าปิดแล้วเปิดใหม่ แล้วรันแยก ยัง รัน ได้เหมือนเดิมครับ

Re: VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 6:44 pm
by snasui
:D สิ่งที่ผมแนะนำไปไม่ได้มีผลที่จะทำให้ Code เดิมมีพฤติกรรมที่เปลี่ยนไปแต่อย่างใด เป็นการสร้าง Procedure เพิ่มเพื่อเรียกใช้ Code ให้ทำงานได้พร้อมกันทุกงานตามที่ได้กำหนดลำดับไว้ด้วยการเรียกเพียงครั้งเดียว

สามารถที่จะใช้ Procedure แรกไปเรียก Procedure ที่สอง และ Procedure ที่สองไปเรียก Procedure ที่สาม ฯลฯ เช่นนี้ก็ทำได้เช่นกัน

Error ที่แจ้งมานั้นต้องจับ Description มาแจ้งด้วยว่าโปรแกรมฟ้องว่าอะไรจึงจะพอตอบได้ครับ

เบื้องต้นลองแยก Code ที่ Error ออกเป็น 2 บรรทัดแล้วสังเกตว่า Error กลายเป็นแบบไหนครับ

Code: Select all

Sheets("BY MDL").Select
Range("A1").Select

Re: VBA รัน module1 และ module2

Posted: Sun Oct 24, 2021 7:42 pm
by hs6nfg@gmail.com
ได้แล้วครับ

Code: Select all

        ActiveSheet.UsedRange.Copy
        formBook.Activate
        Sheets("BY MDL").Range("A1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        wb.Close False
        Application.Calculation = xlCalculationAutomati
        Application.ScreenUpdating = True
End Sub
แก้ไข

Code: Select all

ActiveSheet.UsedRange.Copy
        formBook.Activate
         Sheets("BY MDL").Select 
        Range("A1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        wb.Close False
        Application.Calculation = xlCalculationAutomati
        Application.ScreenUpdating = True
End Sub
ขอบคุณมากๆครับ