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: วิธีนับเซลล์ด้วยข้อความเฉพาะ

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *