Note: The other languages of the website are Google-translated. Back to English

 วิธีใช้ตัวกรองเดียวกันกับแผ่นงานหลายแผ่นใน Excel

อาจเป็นเรื่องง่ายที่เราจะใช้ฟังก์ชันตัวกรองเพื่อกรองข้อมูลในแผ่นงาน แต่บางครั้งคุณอาจต้องกรองในแผ่นงานหลายแผ่นที่มีการจัดรูปแบบข้อมูลร่วมกันโดยใช้เกณฑ์การกรองเดียวกัน การกรองทีละรายการจะเสียเวลามากที่นี่ฉันสามารถแนะนำวิธีง่ายๆในการแก้ปัญหาในครั้งเดียว

ใช้ตัวกรองเดียวกันกับแผ่นงานหลายแผ่นด้วยรหัส VBA


ลูกศรสีฟ้าฟองขวา ใช้ตัวกรองเดียวกันกับแผ่นงานหลายแผ่นด้วยรหัส VBA

ตัวอย่างเช่นฉันมีสี่แผ่นงานเนื่องจากภาพหน้าจอต่อไปนี้จะต้องถูกกรองด้วยเกณฑ์เดียวกับที่ Product = KTE พร้อมกัน

doc กรองหลายแผ่น 1

ไม่มีวิธีโดยตรงในการกรองข้อมูลในแผ่นงานหลายแผ่นใน Excel แต่รหัส VBA ต่อไปนี้สามารถช่วยให้คุณทำงานนี้ให้เสร็จได้โปรดทำดังนี้:

1. กด ALT + F11 จากนั้นจะเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ โมดูล หน้าต่าง.

รหัส VBA: ใช้ตัวกรองเดียวกันกับแผ่นงานหลายแผ่น:

Sub apply_autofilter_across_worksheets()
'Updateby Extendoffice
    Dim xWs As Worksheet
    On Error Resume Next
    For Each xWs In Worksheets
        xWs.Range("A1").AutoFilter 1, "=KTE"
    Next
End Sub

3. จากนั้นกด F5 กุญแจสำคัญในการเรียกใช้รหัสนี้ผลิตภัณฑ์ทั้งหมดของ KTE ได้รับการกรองในแผ่นงานทั้งหมดพร้อมกันดูภาพหน้าจอ:

doc กรองหลายแผ่น 2

หมายเหตุ: ภายในโค้ดข้างต้นในนี้ xWs.Range ("A1") ตัวกรองอัตโนมัติ 1, "= KTE" สคริปต์ A1 และ = KTE ระบุคอลัมน์และเกณฑ์ที่คุณต้องการกรองตามหมายเลข 1 คือหมายเลขคอลัมน์ที่คุณกรองตามคุณสามารถเปลี่ยนได้ตามความต้องการของคุณ ตัวอย่างเช่นหากคุณต้องการกรองลำดับที่มากกว่า 50 คุณก็ต้องแก้ไขสคริปต์นี้ดังนี้: xWs.Range ("B1") ตัวกรองอัตโนมัติ 2, "> 50".


กรองข้อมูลตามเกณฑ์หลายข้อหรือเงื่อนไขเฉพาะอื่น ๆ เช่นตามความยาวของข้อความโดยคำนึงถึงขนาดตัวพิมพ์เป็นต้น

Kutools สำหรับ Excel's ซุปเปอร์ฟิลเตอร์ คุณลักษณะเป็นยูทิลิตี้ที่มีประสิทธิภาพคุณสามารถใช้คุณสมบัตินี้เพื่อสิ้นสุดการดำเนินการต่อไปนี้:

  • กรองข้อมูลด้วยหลายเกณฑ์ กรองข้อมูลตามความยาวข้อความ
  • กรองข้อมูลตามตัวพิมพ์ใหญ่ / เล็ก กรองวันที่ตามปี / เดือน / วัน / สัปดาห์ / ไตรมาส

doc-super-filter1

Kutools สำหรับ Excel: ด้วย Add-in ของ Excel ที่มีประโยชน์มากกว่า 300 รายการให้ทดลองใช้ฟรีโดยไม่มีข้อ จำกัด ใน 30 วัน ดาวน์โหลดและทดลองใช้ฟรีทันที!


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (39)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณใช้สูตรตัวกรองนี้อย่างไร: กับช่วงของชีต ฉันมีสมุดงานที่มีข้อมูลใน 5 แผ่นงานแรก และสมุดงานมี 200 แผ่น ฉันเพียงต้องการใช้ตัวกรองกับแผ่นงาน 6-200 ย่อย Apply_autofilter_across_worksheets() 'Updateby Extendoffice 20160623 Dim xWs As Worksheet On Error Resume Next For Each xWs In Worksheets xWs.Range("A1").AutoFilter 1, "=KTE" Next End Sub
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Sub Apply_autofilter_across_worksheets() Dim J As integer On Error Resume Next For J = 6 to Worksheets(worksheets.count) Thisworkbook.Sheets(J).Range("A1")).Autofilter 1, "=KTE" Next End Sub
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน ฉันต้องการกรองมากกว่าหนึ่งค่า ฉันใช้ xWs.Range("B1").AutoFilter 2, "=223AM", xlOr, "=113IR", xlOr, "=003IR" นี้และมันใช้งานได้ แต่เมื่อฉัน เพิ่มค่าที่ต้องการเป็น >2 เกิดข้อผิดพลาด คำสั่งนี้ฉันใช้ xWs.Range("B1").AutoFilter 2, "=223AM", xlOr, "=113IR", xlOr, "=003IR", xlOr, "=019IR", xlOr, "=311IR", xlOr , "=518ZA", xlOr, "=223AM", xlOr, "=592IR" ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ในขณะที่กรองคำเดียวในหลายแผ่นจะไม่แสดงข้อมูลที่กรอง .... ข้อมูลทั้งหมดถูกซ่อนไว้ โปรดแก้ไขปัญหานี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี


ข้อมูลของฉันอยู่ในคอลัมน์ E และเมื่อฉันใช้ตัวกรองนี้กับ Range("E1") มันยังคงกรองคอลัมน์ A


ฉันจะแก้ไขปัญหาได้อย่างไร
ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณเพียงแค่ต้องเขียนหมายเลขคอลัมน์ใน AutoFilter ในกรณีนี้: xWs.Range("E1")).AutoFilter 5,
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณ!!!!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ลบคอลัมน์ LOL
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
จะดำเนินการอย่างไรหากตัวกรองอยู่ในคอลัมน์ที่แตกต่างกันในแต่ละแผ่นงาน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณจะใช้ผลลัพธ์ของตัวกรองอัตโนมัติเพื่อตั้งค่าตัวกรองสำหรับชีตอื่นแทนการใช้ =(ชื่อเฉพาะ) ได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันสามารถใช้สิ่งนี้เพื่อกรองตารางสาระสำคัญในหลายแผ่นได้หรือไม่ ถ้าตารางสาระสำคัญทั้งหมดมาจากแหล่งข้อมูลเดียวกันและตั้งค่าโดยใช้เกณฑ์เดียวกัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีตัวเลือกในการกรองตามสีหรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคุณ Mahesh
หากคุณต้องการกรองข้อมูลตามสี อาจเป็นสองบทความต่อไปนี้สามารถช่วยคุณได้! โปรดดูพวกเขา หวังว่ามันจะช่วยคุณได้!

https://www.extendoffice.com/documents/excel/912-excel-filter-by-cell-color.html
https://www.extendoffice.com/documents/excel/3383-excel-filter-by-multiple-colors.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี


วิธีการนี้ทำงานอย่างไรหากคอลัมน์ Product แสดงในตำแหน่งต่างๆ ในชีตอื่น ?


ในชีต 1 มันคือ A1 ในชีต 2 อยู่ใน B1 และในชีต 3 มันคือ A1 อีกครั้งหรือไม่

ขอบคุณ,
Monika
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีเปลี่ยนส่วน "=KTE" สำหรับแต่ละแผ่นงานด้วยตัวกรองที่มีตามชื่อแผ่นงานหรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับรหัส!! มีวิธีเปลี่ยน "=KTE" เพื่อใช้ค่าจากรายการหรือรายการแบบหล่นลงหรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ตัวกรองขั้นสูงทั่วทั้งเวิร์กบุ๊กใช้ซ้ำโดยอัตโนมัติทุกครั้งที่มีการอัปเดตไฟล์หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เราสามารถใช้ชื่อเซลล์เช่น Product แทน A1 ใน : xWs.Range("A1")).AutoFilter 1, "=KTE" ได้หรือไม่
ฉันมีคอลัมน์ที่แตกต่างกันและบางชื่อมาในคอลัมน์ที่ต่างกัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันได้ใช้ตัวกรองในทุกแผ่น และฉันต้องการเปลี่ยน s.no จาก 1 2 3 ตามลำดับในทุกแผ่นหลังตัวกรอง


โปรดแจ้งให้เราทราบหากคุณมีรหัส vba สำหรับมัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วิธีใช้ฟังก์ชัน "Filter Between" สำหรับหลายแผ่นเดียวกัน

(ตัวอย่าง: ช่วงเวลา)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
จะกำจัดแถวที่กรองได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ที่รัก,

วิธีการกรองแบบหลายเงื่อนไข?
ตัวอย่างเช่น ฉันต้องการกรองลำดับที่มากกว่า 50 แต่เฉพาะผลิตภัณฑ์ KTE

ขอขอบคุณล่วงหน้า
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีค่ะ คุณเพ็ญจา
หากต้องการกรองแผ่นงานหลายแผ่นตามสองเงื่อนไข โปรดใช้รหัสต่อไปนี้:
ใช้ย่อย_autofilter_across_worksheets()

'Updateby Extendoffice

Dim xWs เป็นเวิร์กชีต

เกี่ยวกับข้อผิดพลาดต่อไป

สำหรับแต่ละ xWs ในเวิร์กชีต

ด้วย xWs.Range("A1")

.AutoFilter Field:=1, Criteria1:="KTE" 'Column A เท่ากับ "KTE"

.AutoFilter Field:=2, Criteria1:=">500" 'Column B มากกว่า 500

จบด้วย

ต่อไป

ย่อยสิ้นสุด

โปรดลอง หวังว่าจะช่วยคุณได้!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
แม้ว่าฉันจะแทนที่ A1 ด้วย G1 ตัวกรองก็จะอยู่ในคอลัมน์ A1
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคุณตัน
คุณเพียงแค่แทนที่ A1 ด้วย G1 ในเวลาเดียวกัน คุณควรเปลี่ยนคอลัมน์หมายเลข 1 เป็นคอลัมน์หมายเลข 7 ตามโค้ดด้านล่าง:
xWs.Range("G1").AutoFilter 7, "=KTE"
โปรดลอง ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี,
เป็นไปได้ไหมที่จะกรองตามชื่อคอลัมน์ แทนที่จะเป็นตัวเลข (เนื่องจากข้อมูลของฉันอยู่ในคอลัมน์ต่างๆ ในเวิร์กชีตที่ต่างกัน)
ขอบคุณManuela
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันต้องการกรองด้วยเงื่อนไขเดียวกัน "KTE" แต่ถ้าไม่แสดงในชีตก็จะไม่แสดงข้อมูลใดๆ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
hi,
ฉันต้องการเกณฑ์การกรองตามค่าของเซลล์แทนที่จะเป็น "KTE" ได้ไหม ???
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี เหมราช หากต้องการกรองข้อมูลตามค่าเซลล์เฉพาะแทนข้อความคงที่ โปรดใช้รหัสด้านล่าง: สมัครย่อย_autofilter_across_worksheets()
'Updateby Extendoffice
Dim xWs เป็นเวิร์กชีต
เกี่ยวกับข้อผิดพลาดต่อไป
สำหรับแต่ละ xWs ในเวิร์กชีต
xWs.Range("A1").AutoFilter 1, Sheet1.Range("E2")
ต่อไป
ย่อยสิ้นสุดหมายเหตุ: กรุณาเปลี่ยน Sheet1 และ E2 ภายในนี้ แผ่นที่1.ช่วง("E2") สคริปต์ไปยังแผ่นงานและค่าเซลล์ของคุณเอง โปรดลอง หวังว่าจะช่วยคุณได้!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี สกายหยาง
ขอบคุณสำหรับการสนับสนุนที่มีค่าและยอดเยี่ยมของคุณ ฉันพยายามใช้สูตรเดียวกัน แต่มันใช้ไม่ได้กับสิ่งที่อาจเป็นสาเหตุ ต่อไปนี้เป็นรหัสที่ฉันใช้สำหรับแผ่นงาน excel
ใช้ย่อย_autofilter_across_worksheets()
'Updateby Extendoffice
Dim xWs เป็นเวิร์กชีต
เกี่ยวกับข้อผิดพลาดต่อไป
สำหรับแต่ละ xWs ในเวิร์กชีต
xWs.Range("A1").AutoFilter 1, Sheet2.Range("C4")
ต่อไป
ย่อยสิ้นสุด
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
โหลดเพิ่มเติม
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ