Page 1 of 1
VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย
Posted: Wed Mar 01, 2023 12:18 pm
by Jirawat namrach
รบกวนแนะนำหน่อยครับ เวลาสั่งเปิดไฟล์เพื่อค้นหาข้อมูล แต่บางทีมีไฟล์นั้นมีคนกำหนด Filter อยู่ ทำให้ไม่สามารถดึงข้อมูลทั้งหมดมาได้ ได้เฉพาะที่ Filter อยู่เท่านั้น จะแก้ไข Code ยังไงได้ครับ ขอบคุณครับ
Code: Select all
Set Cbook = Workbooks.Open("\\Lbox\meeting\EDS\New EDS\Confirm Spec\SX4000\EDS_BOM LIST SX4000.xlsx", UpdateLinks:=False, ReadOnly:=True)
Re: VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย
Posted: Wed Mar 01, 2023 5:13 pm
by Jirawat namrach
หาวิธีได้แล้วครับ
Code: Select all
Set Cbook = Workbooks.Open("\\Lbox\meeting\EDS\New EDS\Confirm Spec\SX4000\EDS_BOM LIST SX4000.xlsx", UpdateLinks:=False, ReadOnly:=True)
ActiveSheet.ShowAllData << เพิ่ม Code นี้ต่อจากบรรทัดบน แต่จะเกิดปัญหาตอนสั่งให้ปิด ไฟล์ คือต้องคอยกด Don't Save
Savechanges:=False <<เพิ่ม Code นี้ ให้ปิดโดยไม่ต้องกด Don't Save
ถูกผิดยังไงแนะนำได้นะครับ
Re: VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย
Posted: Wed Mar 01, 2023 7:49 pm
by snasui
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
สามารถใช้แบบที่เขียนมาได้เลยครับ
![thumbup :thup:](./images/smilies/icon_thumbup.gif)
Re: VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย
Posted: Thu Mar 09, 2023 9:58 am
by Jirawat namrach
สอบถามเพิ่มเติมครับอาจารย์ หลังจากลองใช้มาสักพัก วันดีคืนดีดันไม่มีใครใส่ Filter ไว้ VBA ขึ้น Error
Run-time error '1004':
ShowAllData method of Worksheet class failed
แก้ไขยังไงดีครับ รบกวนด้วยครับ
Re: VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย
Posted: Thu Mar 09, 2023 5:12 pm
by Jirawat namrach
แก้ไขเบื้องต้นคือ ใส่ Code
ไว้บรรทัดก่อน
สามารถใช้งานได้ปกติ แต่ไม่ทราบว่าจะมีผลกระทบอะไรอย่างอื่นหรือเปล่าครับ
Re: VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย
Posted: Thu Mar 09, 2023 8:09 pm
by snasui
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
ดูตัวอย่างการตรวจสอบว่ามีการ Filter อยู่หรือไม่ หากมีให้ยกเลิกการ Filter เสียก่อนตามโพสต์นี้ครับ
https://www.snasui.com/viewtopic.php?st ... 26#p108747
Jirawat namrach wrote: ↑Thu Mar 09, 2023 5:12 pm
แก้ไขเบื้องต้นคือ ใส่ Code
On Error Resume Next
ไว้บรรทัดก่อน
ActiveSheet.ShowAllData
การทำเช่นนี้เป็นการปิดการฟ้อง Error ทุกชนิด หากมี Error อื่นใดนอกเหนือจากนี้ก็จะไม่ฟ้องอีก อาจจะทำให้โปรแกรมทำงานไม่ตรงกับที่ต้องการได้ครับ
Re: VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย
Posted: Fri Mar 10, 2023 9:44 am
by Jirawat namrach
ได้แล้วครับ ขอบคุณมากครับอาจารย์