Page 1 of 1

การ Hide แถวใน Excel

Posted: Sun Jun 30, 2013 9:01 am
by วังวู ช่ง
เรียน ท่าน อาจารย์ และ สมาชิกทุกท่านครับ
ช่วยผมแก้ปัณหาคือว่า ถ้าแถวใดไม่มีตัวเลขใน
Column L ให้ Hide ไว้ครับตัวอย่างนี้คือ
แถว 15-20,22-23,25-28,30-45,48-51,54-61
66-77,91-93,97-103,108-117,119-121,123-155
157,159-170,183-186,188 และ 190-196 ครับ
แต่มีมากกว่านี้ครับ เพียงเป็นตัวอย่างครับ
ทังหมด 100 กว่า มส ครับ
ความต้องการใน sheet2 ครับ
ขอบคุณล่วงหน้าครับ

Re: การ Hide แถวใน Excel

Posted: Sun Jun 30, 2013 9:14 am
by snasui
:D ลองตามนี้ครับ
  1. เซลล์ M11 คีย์ CheckAmout เพื่อเป็นหัวคอลัมน์
  2. เซลล์ M12 คีย์สูตร
    =L12=0
    Enter > Copy ลงด้านล่าง
  3. คลุม M11:Mn (n คือเซลล์สุดท้ายทีมีข้อมูล)
  4. เข้าเมนู Data > Filter > คลิก Dropdown ที่ M11 แล้วเลือก False

Re: การ Hide แถวใน Excel

Posted: Sun Jun 30, 2013 8:44 pm
by วังวู ช่ง
snasui wrote::D ลองตามนี้ครับ
  1. เซลล์ M11 คีย์ CheckAmout เพื่อเป็นหัวคอลัมน์
  2. เซลล์ M12 คีย์สูตร
    =L12=0
    Enter > Copy ลงด้านล่าง
  3. คลุม M11:Mn (n คือเซลล์สุดท้ายทีมีข้อมูล)
  4. เข้าเมนู Data > Filter > คลิก Dropdown ที่ M11 แล้วเลือก False
:D ขอบคุณท่าน อาจารย์มากๆครับ ได้ตามต้องการครับ :thup: :cp:

Re: การ Hide แถวใน Excel

Posted: Sun Jul 28, 2013 2:29 am
by วังวู ช่ง
ถ้าใช้กรับ VBA ความต้องการคือว่า ถ้าเลือกรหัสใน M1 (sheet Report) ให้ Hide ที่ M12:M201 ส่วนที่เป็น TRUE ครับ จะแก้ไข Code อย่างไลครับ
ขอบคุณทุกท่านล่วงหน้าครับ

Code: Select all

Sub Filter()
    If Range("M1") = "" Then
        ActiveSheet.ShowAllData
    Else
        ActiveSheet.Range("$M$12:$M$201").AutoFilter Field:=1, _
            Criteria1:=Range("M1").Value
    End If
End Sub

Re: การ Hide แถวใน Excel

Posted: Sun Jul 28, 2013 7:19 am
by snasui
:D ถ้าต้องการเลือกจาก M1 ให้เปลี่ยน M1 เป็น True กับ False เพื่อใช้กรองข้อมูลครับ

หากจะเปลี่ยนใน Code ก็เปลี่ยนที่ Criteria1:=Range("M1").Value ลองเปลี่ยนเองดูก่อนครับ

Re: การ Hide แถวใน Excel

Posted: Sun Jul 28, 2013 8:25 am
by วังวู ช่ง
snasui wrote::D ถ้าต้องการเลือกจาก M1 ให้เปลี่ยน M1 เป็น True กับ False เพื่อใช้กรองข้อมูลครับ

หากจะเปลี่ยนใน Code ก็เปลี่ยนที่ Criteria1:=Range("M1").Value ลองเปลี่ยนเองดูก่อนครับ
เนื่องจากเปลี่ยน M1 เป็น True กับ False ไม่ได้ เพราะเป็นรหัสของโรงเรียนครับ นั้นผมเปลี่ยนแปลง True กับ False มาเป็นรหัสใน M1 แทน แล้วเอา Code ตามเก่าครับ

Code: Select all

Sub Filter()
    If Range("M1") = "" Then
        ActiveSheet.ShowAllData
    Else
        ActiveSheet.Range("$M$12:$M$201").AutoFilter Field:=1, _
            Criteria1:=Range("M1").Value
    End If
End Sub

Re: การ Hide แถวใน Excel

Posted: Sun Jul 28, 2013 8:44 am
by snasui
:D สรุปว่า คำถามคืออะไร ตอนนี้แก้ปัญหาได้แล้วหรือไม่ครับ

Re: การ Hide แถวใน Excel

Posted: Sun Jul 28, 2013 9:17 am
by วังวู ช่ง
snasui wrote::D สรุปว่า คำถามคืออะไร ตอนนี้แก้ปัญหาได้แล้วหรือไม่ครับ
ได้แล้วครับ ท่าน อาจารย์ครับ เนื่องจากท่าน อาจารย์แนะนำแบบนี้
snasui wrote::D ถ้าต้องการเลือกจาก M1 ให้เปลี่ยน M1 เป็น True กับ False เพื่อใช้กรองข้อมูลครับ
หากจะเปลี่ยนใน Code ก็เปลี่ยนที่ [color=#FF0000]Criteria1:=Range("M1").Value[/color] ลองเปลี่ยนเองดูก่อนครับ
ผมมาเปี่ลยน [color=#FF0000]Criteria1:=Range("M1").Value[/color] ก็ไม่ได้เลียแปลง FALSE ให้ตรงค่าใน M1 ส่วน TRUE ให้เป็น BLANKS แล้วส่วน Code จะไม่เปลี่ยนแปลงแล้วสามาดใช้ได้แล้วครับ
ขอบคุณท่านอาจารย์ครับ

Re: การ Hide แถวใน Excel

Posted: Sun Jul 28, 2013 9:27 am
by snasui
snasui wrote::D ถ้าต้องการเลือกจาก M1 ให้เปลี่ยน M1 เป็น True กับ False เพื่อใช้กรองข้อมูลครับ

หากจะเปลี่ยนใน Code ก็เปลี่ยนที่ Criteria1:=Range("M1").Value ลองเปลี่ยนเองดูก่อนครับ
:lol: ผมหมายถึงว่าสามารถเปลี่ยนได้ 2 ที่หลัก ๆ นั่นคือเปลี่ยนที่ M1 หรือเปลี่ยนใน Code

แต่เท่าที่ดูสูตรเป็นการดึงค่ามาตามเงื่อนไขใน M1 มาเป็นลำดับแรก ถัดมาจึงจะดู True หรือ False หากเป็นเช่นนี้จึงควรปรับใน Code

ยกตัวอย่างเช่น ดูค่าใน M1 ที่เป็น False สามารถปรับ Code เป็น

Code: Select all

Sub Filter()
    If Range("M1") = "" Then
        ActiveSheet.ShowAllData
    Else
        ActiveSheet.Range("$M$12:$M$201").AutoFilter Field:=1, _
            Criteria1:=False
    End If
End Sub

Re: การ Hide แถวใน Excel

Posted: Sun Jul 28, 2013 1:25 pm
by วังวู ช่ง
snasui wrote:
snasui wrote::D ถ้าต้องการเลือกจาก M1 ให้เปลี่ยน M1 เป็น True กับ False เพื่อใช้กรองข้อมูลครับ

หากจะเปลี่ยนใน Code ก็เปลี่ยนที่ Criteria1:=Range("M1").Value ลองเปลี่ยนเองดูก่อนครับ
:lol: ผมหมายถึงว่าสามารถเปลี่ยนได้ 2 ที่หลัก ๆ นั่นคือเปลี่ยนที่ M1 หรือเปลี่ยนใน Code

แต่เท่าที่ดูสูตรเป็นการดึงค่ามาตามเงื่อนไขใน M1 มาเป็นลำดับแรก ถัดมาจึงจะดู True หรือ False หากเป็นเช่นนี้จึงควรปรับใน Code

ยกตัวอย่างเช่น ดูค่าใน M1 ที่เป็น False สามารถปรับ Code เป็น

Code: Select all

Sub Filter()
    If Range("M1") = "" Then
        ActiveSheet.ShowAllData
    Else
        ActiveSheet.Range("$M$12:$M$201").AutoFilter Field:=1, _
            Criteria1:=False
    End If
End Sub
:D ขอบคุณท่านอาจารย์ครับ
ผมปรับแล้วแต่ผมปรับแบบนี้ แล้วมันไม่ได้ครับ ผมทำผิดเองครับ :lol: :thup: :cp:

Code: Select all

Criteria1:="False"