Page 2 of 2

Re: สอบถามการเขียน vba

Posted: Fri Sep 16, 2011 12:55 pm
by yodpao.b
ขอบคุณครับอาจารย์ ขั้นตอนนี้จะลดความผิดพลาดจากคนได้เลยครับ ผมจะเอาเกี่ยวกับที่ทำ ot ไปทำ qcc
อย่าว่าอย่านั้นอย่านี้เลยอยากถามว่า

Do While Not IsEmpty(ActiveCell.Value) หมายถึงอะไร

CobBox21.AddItem ActiveCell.Value หมายถึงอะไร

Re: สอบถามการเขียน vba

Posted: Fri Sep 16, 2011 1:06 pm
by snasui
yodpao.b wrote:Do While Not IsEmpty(ActiveCell.Value) หมายถึงอะไร
ควรเขียนเป็น

Code: Select all

Do While Not IsEmpty(ActiveCell.Value)
   'Other code
Loop
ActiveCell.Value คือเซลล์ที่กำลังทำงาน
IsEmpty(ActiveCell.Value) เป็นการตรวจสอบว่าเซลล์ที่กำลังทำงานเป็นค่าว่างหรือไม่

Code: Select all

Do While Not IsEmpty(ActiveCell.Value)
   'Other code
Loop
เป็นการ Run Code ที่เกียวข้องหากพบว่าเซลล์ที่กำลังทำงานไม่เป็นค่าว่าง
yodpao.b wrote:CobBox21.AddItem ActiveCell.Value หมายถึงอะไร
หมายถึงให้เพิ่มรายการใน CobBox21 ด้วยค่าในเซลล์ที่กำลังทำงาน

Re: สอบถามการเขียน vba

Posted: Fri Sep 16, 2011 1:24 pm
by yodpao.b
ขอบคุณครับ

Re: สอบถามการเขียน vba

Posted: Fri Sep 16, 2011 2:14 pm
by yodpao.b
อาจาร์ยครับ ในกรณีที่เราได้เลือกครบทั้ง 3 ช่อง แต่มีความจำเป็นต้อง มาแก้ไขช่องแรก
ขั้นตอน
1. หลังจากเลือกครบ 3 ช่อง
2. กับมาเลือกช่องแรก
untitled41.GIF
ผลที่ได้คือ ช่อง 2 และ 3 ว่าง
untitled42.GIF

Re: สอบถามการเขียน vba

Posted: Fri Sep 16, 2011 2:40 pm
by snasui
:lol: ลองปรับเป็นตามด้านล่างครับ

Code: Select all

Private Sub CobBox15_Change()
Dim i As Integer
If CobBox16.ListCount > 1 Then
    For i = CobBox16.ListCount To 1 Step -1
        CobBox16.RemoveItem i - 1
    Next i
End If
Range("K6").Select
CobBox16.Text = ""
Do While Not IsEmpty(ActiveCell.Value)
    If CDate(ActiveCell.Value) >= CDate(CobBox15.Text) Then
            CobBox16.AddItem ActiveCell.Value
    End If
    ActiveCell.Offset(1, 0).Select
Loop
End Sub

Private Sub CobBox16_Change()
Dim i As Integer
If CobBox21.ListCount > 1 Then
    For i = CobBox21.ListCount To 1 Step -1
        CobBox21.RemoveItem i - 1
    Next i
End If
CobBox21.Text = ""
Range("K6").Select
If CobBox16 = "" Then Exit Sub
Do While Not IsEmpty(ActiveCell.Value)
    If CDate(ActiveCell.Value) >= CDate(CobBox15.Text) And _
        CDate(ActiveCell.Value) <= CDate(CobBox16.Text) Then
        CobBox21.AddItem ActiveCell.Value
    End If
    ActiveCell.Offset(1, 0).Select
Loop
End Sub

Re: สอบถามการเขียน vba

Posted: Fri Sep 16, 2011 3:05 pm
by yodpao.b
เรียบร้อยอีก forum