Vba: วิธีซ่อนแถวตามเกณฑ์
คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน VBA เพื่อซ่อนแถวตามค่าของเซลล์:
SubHideRows ()
Dim i As Integer
For i = 2 To 10
If Cells(i, 1).Value = " Mavs " Then
Cells(i, 1).EntireRow.Hidden = True
Else
Cells(i, 1).EntireRow.Hidden = False
End If
Next i
End Sub
มาโครนี้จะซ่อนแถวทั้งหมดในช่วง 2 ถึง 10 ที่มีค่าเซลล์เท่ากับ “Mavs” ในคอลัมน์แรก
คุณยังสามารถใช้แมโครต่อไปนี้เพื่อแสดงแถวทั้งหมด:
SubUnhideRows ()
Rows.EntireRow.Hidden = False
End Sub
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: ใช้ VBA เพื่อซ่อนแถวตามเกณฑ์
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
สมมติว่าเราต้องการซ่อนทุกแถวที่มี “Mavs” ในคอลัมน์ทีม
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubHideRows ()
Dim i As Integer
For i = 2 To 10
If Cells(i, 1).Value = " Mavs " Then
Cells(i, 1).EntireRow.Hidden = True
Else
Cells(i, 1).EntireRow.Hidden = False
End If
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดทราบว่าทุกแถวที่มี “Mavs” ในคอลัมน์ทีมได้ถูกซ่อนไว้แล้ว
หากเราต้องการ เราสามารถสร้างแมโครต่อไปนี้เพื่อแสดงแถวทั้งหมด:
SubUnhideRows ()
Rows.EntireRow.Hidden = False
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดทราบว่าทุกบรรทัดจะแสดงอีกครั้ง
โปรดทราบว่าในมาโครของเรา เราได้ระบุ For i = 2 ถึง 10 เพื่อซ่อนแถวระหว่าง 2 ถึง 10 ตามเกณฑ์
อย่าลังเลที่จะเปลี่ยนค่าเริ่มต้นและสิ้นสุดเหล่านี้เพื่อซ่อนแถวในช่วงแถวอื่น
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีใช้การจัดรูปแบบตามเงื่อนไขกับเซลล์
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ