Page 1 of 1

VBA ในการ HideRows

Posted: Mon Nov 02, 2020 12:51 pm
by วังวู ช่ง
รบกวนท่านที่รู้ครับ ผมต้องการ Hide แถวด้วย VBA ที่มาพร้อมนี้ครับ ความต้องการคือว่า
ถ้า I4:I4031 ใน sheet Database ไม่เท่ากับ B1 ใน sheet Pol ให้ Hide ครับ จะปรับ VBA อย่างไรครับ

Code: Select all

Sub HideRows()
Sheets("Database").Select
   Dim r As Range
   For Each r In Range("I4:I4031")
        If r <> "=Pol!R[1]C[-1]" Then
            r.EntireRow.Hidden = True
        End If
   Next r
End Sub

Re: VBA ในการ HideRows

Posted: Mon Nov 02, 2020 2:08 pm
by parakorn
ลองปรับตามนี้ครับ
=Pol!R[1]C[-1] เป็น =Pol!R1C2

Re: VBA ในการ HideRows

Posted: Mon Nov 02, 2020 3:23 pm
by วังวู ช่ง
parakorn wrote: Mon Nov 02, 2020 2:08 pm ลองปรับตามนี้ครับ
=Pol!R[1]C[-1] เป็น =Pol!R1C2
ยังไม่ได้ครับ

Re: VBA ในการ HideRows

Posted: Mon Nov 02, 2020 3:43 pm
by parakorn
ลองตัดไฟล์เป็นตัวอย่างให้เพื่อนๆลองทดสอบดูครับ

Re: VBA ในการ HideRows

Posted: Mon Nov 02, 2020 4:17 pm
by วังวู ช่ง
parakorn wrote: Mon Nov 02, 2020 3:43 pm ลองตัดไฟล์เป็นตัวอย่างให้เพื่อนๆลองทดสอบดูครับ

Re: VBA ในการ HideRows

Posted: Mon Nov 02, 2020 4:43 pm
by parakorn
ปรับตามนี้ครับ

Code: Select all

Sub HideRows()
Sheets("Database").Select
   Dim r As Range
   For Each r In Range("I4:I4031")
        If r <> Sheets("Pol").Range("B1").Value Then
            r.EntireRow.Hidden = True
        End If
   Next r
End Sub

Re: VBA ในการ HideRows

Posted: Mon Nov 02, 2020 8:53 pm
by วังวู ช่ง
parakorn wrote: Mon Nov 02, 2020 4:43 pm ปรับตามนี้ครับ

Code: Select all

Sub HideRows()
Sheets("Database").Select
   Dim r As Range
   For Each r In Range("I4:I4031")
        If r <> Sheets("Pol").Range("B1").Value Then
            r.EntireRow.Hidden = True
        End If
   Next r
End Sub
ขอบคุณมากครับท่าน
ได้ตามต้องการเลยครับ :D :thup: :cp: :cp:

Re: VBA ในการ HideRows

Posted: Tue Dec 01, 2020 6:09 am
by วังวู ช่ง
รบกวนถามต่อครับ
ถ้าเราวางเงื่อนไขอีกว่า
ถ้า L8:L121 และ Q8:Q121 มีค่าเป็นว่างให้ hide ครับ ไม่ว่างก็อไม่ hide จะปรับ code นี้อย่างไรครับ

Code: Select all

Sub HideRows()
   Dim r As Range
   For Each r In Range("l8:q121")
        If r = "" Then
            r.EntireRow.Hidden = True
        End If
   Next r
End Sub

Re: VBA ในการ HideRows

Posted: Tue Dec 01, 2020 8:49 am
by logic
น่าจะแบบนี้นะครับ

Code: Select all

'...
For Each r In Range("l8:l121")
        If r = "" and r.offset(0,5) = "" Then
'...

Re: VBA ในการ HideRows

Posted: Tue Dec 01, 2020 2:41 pm
by วังวู ช่ง
logic wrote: Tue Dec 01, 2020 8:49 am น่าจะแบบนี้นะครับ

Code: Select all

'...
For Each r In Range("l8:l121")
        If r = "" and r.offset(0,5) = "" Then
'...
ใช้ครับ แบบนี้เลยครับ ขอบคุณมากๆครับ :D :D :thup: :thup: :cp: :cp: