สอบถามการทำ Advanced Filter ด้วยมาโคร ข้ามไฟล์ บนแชร์ไดรฟ์ครับ
Posted: Fri Apr 27, 2018 1:09 pm
สวัสดีครับ อยากสอบถามเรื่องการโค้ดดิ้งครับ
คือผมจะ ทำมาโคร Advanced Filter บนไฟล์กลาง 1 ไฟล์ ชื่อ MASTER_TRACKING
โดยจะทำ Button 1 ปุ่มสำหรับ ดึงข้อมูลจากไฟล์ย่อยที่มีข้อมูล 5 ไฟล์
แต่อันนี้ผมเข้าใจว่าค่อนข้างยากสำหรับบีกินเนอร์เพราะ ถ้ามีข้อมูลย่อยเกิน 1 ไฟล์ ข้อมูลจะเขียนทับกัน
ดังนั้น ผมจึงจะทำปุ่ม Advanced Filter สำหรับ ดึงข้อมูล 1 ปุ่ม ต่อ 1 ไฟล์
จากที่ลอง ผมไม่สามารถ เรียกข้อมูลข้ามไฟล์ได้ แต่ถ้าตัวข้อมูลอยู่บน ไฟล์เดียวกันสามารถดึงข้ามชีทได้
โค้ดด้านล่างผมลองเขียนให้ชี้ไปที่ไฟล์ย่อย ไฟล์แรก แต่ไม่สามารถดึงได้ครับ
ไม่แน่ใจต้องทำการชี้ไปที่ Directory ไฟล์เลยหรือไม่ครับ
ไฟล์ทั้งหมดอยู่บน Share drive ในบริษัท ที่ทำการ แมพ ไดร์แล้วครับ (R:)
Directory = R:\LOGISTICS\REPORT\MASTER_TRACKING.xlsm
Directory = R:\LOGISTICS\01\OrderTracking01.xlsm
Directory = R:\LOGISTICS\02\OrderTracking02.xlsm
ขอบคุณครับ.
คือผมจะ ทำมาโคร Advanced Filter บนไฟล์กลาง 1 ไฟล์ ชื่อ MASTER_TRACKING
โดยจะทำ Button 1 ปุ่มสำหรับ ดึงข้อมูลจากไฟล์ย่อยที่มีข้อมูล 5 ไฟล์
แต่อันนี้ผมเข้าใจว่าค่อนข้างยากสำหรับบีกินเนอร์เพราะ ถ้ามีข้อมูลย่อยเกิน 1 ไฟล์ ข้อมูลจะเขียนทับกัน
ดังนั้น ผมจึงจะทำปุ่ม Advanced Filter สำหรับ ดึงข้อมูล 1 ปุ่ม ต่อ 1 ไฟล์
จากที่ลอง ผมไม่สามารถ เรียกข้อมูลข้ามไฟล์ได้ แต่ถ้าตัวข้อมูลอยู่บน ไฟล์เดียวกันสามารถดึงข้ามชีทได้
โค้ดด้านล่างผมลองเขียนให้ชี้ไปที่ไฟล์ย่อย ไฟล์แรก แต่ไม่สามารถดึงได้ครับ
ไม่แน่ใจต้องทำการชี้ไปที่ Directory ไฟล์เลยหรือไม่ครับ
ไฟล์ทั้งหมดอยู่บน Share drive ในบริษัท ที่ทำการ แมพ ไดร์แล้วครับ (R:)
Directory = R:\LOGISTICS\REPORT\MASTER_TRACKING.xlsm
Directory = R:\LOGISTICS\01\OrderTracking01.xlsm
Directory = R:\LOGISTICS\02\OrderTracking02.xlsm
ขอบคุณครับ.
Code: Select all
Sub FilterVBA()
Worksheets("ADV Filter").Select
Range("A15").CurrentRegion.Clear
Workbooks("OrderTracking01.xlsm").Worksheets("Track FY18").Range("A3:").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Workbooks("MASTER_TRACKING.xlsm").Worksheets("ADV Filter").Range("A2"), _
CopyToRange:=Workbooks("MASTER_TRACKING.xlsm").Worksheets("ADV Filter").Range("A15"), Unique:=False
End Sub