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

Code: Select all

Cbook.Close Savechanges:=False
Savechanges:=False <<เพิ่ม Code นี้ ให้ปิดโดยไม่ต้องกด Don't Save

ถูกผิดยังไงแนะนำได้นะครับ

Re: VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย

Posted: Wed Mar 01, 2023 7:49 pm
by snasui
:D สามารถใช้แบบที่เขียนมาได้เลยครับ :thup:

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

Code: Select all

On Error Resume Next
ไว้บรรทัดก่อน

Code: Select all

ActiveSheet.ShowAllData
สามารถใช้งานได้ปกติ แต่ไม่ทราบว่าจะมีผลกระทบอะไรอย่างอื่นหรือเปล่าครับ

Re: VBA เปิดไฟล์โดยให้ยกเลิก Filter ทั้งหมดด้วย

Posted: Thu Mar 09, 2023 8:09 pm
by snasui
:D ดูตัวอย่างการตรวจสอบว่ามีการ 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
ได้แล้วครับ ขอบคุณมากครับอาจารย์