Page 1 of 1

Application.ScreenUpdating VBA

Posted: Thu Apr 06, 2023 8:24 am
by Jirawat namrach
สอบถามหน่อยครับ ทำยังไงให้ ScreenUpdating ทำงานครับ ส่วนอื่นใช้งานได้ปกติ ยกเว้น ScreenUpdating ที่ยังกระพริบอยู่ ไฟล์อื่นที่ทำมาไม่มีปัญหา ไฟล์นี้มีปัญหาครับ หรือมี Code ส่วนไหนที่ต้องแก้ไข รบกวนแนะนำด้วยครับ

Re: Application.ScreenUpdating VBA

Posted: Thu Apr 06, 2023 11:41 am
by snasui
:D ตามการจัดเรียง Code ถือว่าใช้งานได้แล้วครับ

สามารถ Debug Code ไปทีละบรรทัดโดยคลิกลงใน Code และกดแป้น F8 ซ้ำ ๆ การตรวจสอบว่าการปิดการ Update ได้ผลแล้วหรือไม่ ทำได้โดยเมื่อผ่านบรรทัดที่เขียนให้ปิดการ Refresh หน้าจอแล้ว ให้ตรวจสอบโดยการเปิดหน้าต่าง Immediate Window โดย Ctrl+G จากนั้นคีย์ Statement ?application.screenupdating หากได้ผลเป็น True แสดงว่าถูกปิดการ Refresh หน้าจอเรียบร้อยแล้ว การที่ยังวูบวาบก็คงต้องยอมรับตามนั้น

หรือไม่ก็ต้องเขียน Code กำหนด Format และ Value ตรง ๆ

Code: Select all

'Other code
'.Range("f" & i).Copy
'sbook.Sheets(sbook.Sheets.Count).Range("B" & l).PasteSpecial xlPasteValuesAndNumberFormats
sbook.Sheets(sbook.Sheets.Count).Range("b" & l).Value = .Range("f" & i).Value
sbook.Sheets(sbook.Sheets.Count).Range("b" & l).NumberFormat = .Range("f" & i).NumberFormat
'.Range("G" & i, "L" & i).Copy
'sbook.Sheets(sbook.Sheets.Count).Range("D" & l).PasteSpecial xlPasteValuesAndNumberFormats
sbook.Sheets(sbook.Sheets.Count).Range("D" & l).Resize(, 6).Value = Range("G" & i, "L" & i).Value
sbook.Sheets(sbook.Sheets.Count).Range("D" & l).Resize(, 6).NumberFormat = Range("G" & i, "L" & i).NumberFormat
'Other code
เลข 6 ตรง Resize หมายถึงความกว้าง 6 คอลัมน์ การนำไปปรับใช้ก็จะต้องดู้ให้สัมพันธ์กับต้นทางว่ามีกี่คอลัมน์ครับ

Re: Application.ScreenUpdating VBA

Posted: Thu Apr 06, 2023 2:36 pm
by Jirawat namrach
ขอบคุณครับอาจารย์