Page 1 of 1

VBA ปรับโค้ดเพื่อใช้กดแป้นคีย์บอร์ดแล้วให้รันโค้ดได้ค่ะ

Posted: Wed Nov 28, 2018 10:39 am
by suka
เรียนอาจารย์และท่านผู้รู้ช่วยเรืองปรับโค้ดค่ะ

Code ในชีท Sheet1 ข้างล่างนี้เดิมใช้กับ excel 2007 สามารถใช้ได้ดีค่ะ แต่นำมาใชักับ excel 2019 ใช้โดยกดปุ่มเปิดในชีท excel ได้ค่ะ หากกดที่แป้นคีย์บอร์ด F10 ไม่ได้ค่ะโค้ดไม่รันค่ะ และปุ่มปิดไฟล์ก็เช่นกันค่ะกดที่ปุ่มในชีท excel ใช้ได้ กดแป้นคีย์บอร์ด End โค้ดไม่รันค่ะ

โค้ดนี้ข้างล่างนี้นำมาใช้กับ excel 2019 ควรปรับโค้ดอย่างไรเพื่อให้สามารถใช้ได้กับปุ่มในชีท excel และกดแป้นคีย์บอร์ดได้ด้วยคะ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Application.EnableEvents = False
        
        Application.OnKey "{F10}", "Form_OpenB11"
        Application.OnKey "{END}", "CloseForm"
     
        Application.EnableEvents = True
End Sub

Re: VBA ปรับโค้ดเพื่อใช้กดแป้นคีย์บอร์ดแล้วให้รันโค้ดได้ค่ะ

Posted: Wed Nov 28, 2018 1:22 pm
by logic
ลองเปิดไฟล์แล้วไม่เห็นโค้ดตามคคห. #1 ครับ :)

Re: VBA ปรับโค้ดเพื่อใช้กดแป้นคีย์บอร์ดแล้วให้รันโค้ดได้ค่ะ

Posted: Wed Nov 28, 2018 2:24 pm
by suka
อ่อค่ะ ขออภัยค่ะแนบผิดไฟล์ แนบไฟล์มาใหม่ค่ะ

Re: VBA ปรับโค้ดเพื่อใช้กดแป้นคีย์บอร์ดแล้วให้รันโค้ดได้ค่ะ

Posted: Wed Nov 28, 2018 8:12 pm
by snasui
:D ผมทดสอบแล้วทำงานได้ปกติครับ

กรณีที่ Event ค้างให้เข้าไปใน VBE คีย์ตรง Immediate Windows เป็น Application.EnableEvents = True > Enter > คลิกเลือกเซลล์ใด ๆ แล้วลองกดแป้น F10 ดูใหม่ครับ

พยายามใช้การกดปุ่มแทน SendKeys ที่ต้องอาศัย Event หรือ Code อื่นเก็บคำสั่งจะดีกว่า เพราะเมื่อเป็นปัญหาจะยุ่งยากในการตรวจสอบกว่าปกติครับ

Re: VBA ปรับโค้ดเพื่อใช้กดแป้นคีย์บอร์ดแล้วให้รันโค้ดได้ค่ะ

Posted: Wed Nov 28, 2018 9:36 pm
by suka
ค่ะอาจารย์ คิด ๆ แล้วเลือกใช้การกดปุ่มแทน SendKeys ดีกว่าค่ะ ขอบคุณมากค่ะ