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

ลองปรับเป็นตามด้านล่างครับ
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