Page 1 of 1
การใช้ if - vba ครับ
Posted: Thu Nov 12, 2015 10:40 am
by yodpao.b
การใช้ if - vba ครับ
Pro.JPG
จากรูปบน
ในช่อง EER ถ้าพิมพ์ เลขที่ต่ำกว่า 11.59 ให้ฟ้องว่าพิมพ์ผิด
ข้อแม้คือ ในช่องขนาดมีค่า < 27290 และ ช่อง EER มีค่ามากกว่าหรือเท่ากับ 11.6 จึงสามารถทำงานต่อได้แต่ถ้าไม่ใช่ให้แสดงข้อความ" กรอกข้อมูลผิด "
จากโคดที่ทำ
สมมุติจะพิมพ์เลข 14
พอพิมพ์ตัวเลข 1 ก็แสดงข้อความแล้ว (ยังพิมพ์ไม่เสร็จครับ)
โคด
Code: Select all
Private Sub TextBox1_Change()
'Sheets("CAL4").Range("C2").Value = TextBox1.Value
If ComboBox1 < 27296 And TextBox1.Value >= 11.6 Then
Sheets("CAL4").Range("C2").Value = TextBox1.Value
Else
MsgBox " ท่านต้องกรอกข้อมูลผิด"
End If
End Sub
Re: การใช้ if - vba ครับ
Posted: Thu Nov 12, 2015 11:12 am
by yodpao.b
ขอบคุณครับเจอแล้วครับใช้
คีย์ได้แล้วครับ
ใช้คำสั่งนี้แทนครับ
Re: การใช้ if - vba ครับ
Posted: Thu Nov 12, 2015 12:33 pm
by yodpao.b
Pro.JPG
จากรูป
1.ช่องขนาดมีค่า 40000
2.คีย 16 ที่ช่องEER
3.MsgBox ขึ้น มา 2 หน ผิด
ที่ถูกต้องขึ้นมาครั้งเดียว
คำถาม
ต้องการให้ MsgBox ที่มีข้อความ MsgBox "เครื่องปรับอากาศเบอร์ 5 ที่มีขนาด >27,296 บีทียู/ชั่วโมง ประสิทธิภาพการทำความเย็น(EER) มีค่าตั้งแต่ 11.00 - 12.80"
นี้แสดง เพาระว่า ในช่องขนาดมีค่า 40000 ซึ่งมีค่ามากกว่า 27296
และ
1.ช่องขนาดมีค่า 20000
2.คีย 11 ที่ช่องEER
3.MsgBox ขึ้น มา 2 หน ผิด
ที่ถูกต้องขึ้นมาครั้งเดียว
คำถาม
ต้องการให้ MsgBox ที่มีข้อความ MsgBox "เครื่องปรับอากาศเบอร์ 5 ที่มีขนาด <=27,296 บีทียู/ชั่วโมง ประสิทธิภาพการทำความเย็น(EER) มีค่าตั้งแต่ 11.60 - 12.80"
นี้แสดง เพาระว่า ในช่องขนาดมีค่า 20000 ซึ่งมีค่าน้อยกว่า 27296
จุดประสงค์คือต้องการ ให้โคด IF ทั้ง 2 รวมกันครับ ไม่ทราบว่าจะต้องเขียนโดคอย่างไร
Code: Select all
Private Sub TextBox1_LostFocus()
If ComboBox1 <= 27296 And TextBox1.Value >= 11.6 And TextBox1.Value <= 12.8 Then
Sheets("CAL4").Range("C2").Value = TextBox1.Value
Else
MsgBox "เครื่องปรับอากาศเบอร์ 5 ที่มีขนาด <=27,296 บีทียู/ชั่วโมง ประสิทธิภาพการทำความเย็น(EER) มีค่าตั้งแต่ 11.60 - 12.80", vbExclamation, "ท่านต้องกรอกตัวเลขผิด"
TextBox1.Value = ""
End If
If ComboBox1 > 27296 And TextBox1.Value >= 11 And TextBox1.Value <= 12.8 Then
Sheets("CAL4").Range("C2").Value = TextBox1.Value
Else
MsgBox "เครื่องปรับอากาศเบอร์ 5 ที่มีขนาด >27,296 บีทียู/ชั่วโมง ประสิทธิภาพการทำความเย็น(EER) มีค่าตั้งแต่ 11.00 - 12.80", vbExclamation, "ท่านต้องกรอกตัวเลขผิด"
TextBox1.Value = ""
End If
End Sub
Re: การใช้ if - vba ครับ
Posted: Thu Nov 12, 2015 6:30 pm
by snasui

ลองอธิบายเฉพาะเงื่อนไขมาใหม่ให้ครบถ้วนทุกเงื่อนไข Code ครับ
Re: การใช้ if - vba ครับ
Posted: Thu Nov 12, 2015 8:20 pm
by yodpao.b
เงื่อนไขแรก
ในช่อง eer สามารถพิมพ์เลขได้ตั้งแต่11.00-12.80 ได้ก็ต่อเมื่อช่องขนาดมีค่ามากว่า 27296 ถ้าไม่ถูกต้องให้ข๊น MsgBox ที่มีข้อความ "เครื่องปรับอากาศเบอร์ 5 ที่มีขนาด >27,296 บีทียู/ชั่วโมง ประสิทธิภาพการทำความเย็น(EER) มีค่าตั้งแต่ 11.00 - 12.80"
เงือ่นไขที่2
ในช่อง eer สามารถพิมพ์เลขได้ตั้งแต่11.60-12.80 ได้ก็ต่อเมื่อช่องขนาดมีค่าน้อยกว่า 27296 ถ้าไม่ถูกต้องให้ข๊น MsgBox ที่มีข้อความ "เครื่องปรับอากาศเบอร์ 5 ที่มีขนาด <27,296 บีทียู/ชั่วโมง ประสิทธิภาพการทำความเย็น(EER) มีค่าตั้งแต่ 11.60 - 12.80"
ขอความกรุณาด้วยครับ
ถ้าพิมพ์ไปขอโทษด้วยครับใช้มือถือพิมพ์ครับ
Re: การใช้ if - vba ครับ
Posted: Thu Nov 12, 2015 9:05 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
If CDbl(ComboBox1) <= 27296 Then
If TextBox1.Value >= 11.6 And TextBox1.Value <= 12.8 Then
Sheets("CAL4").Range("C2").Value = TextBox1.Value
Else
MsgBox "เครื่องปรับอากาศเบอร์ 5 ที่มีขนาด <=27,296 บีทียู/ชั่วโมง ประสิทธิภาพการทำความเย็น(EER) มีค่าตั้งแต่ 11.60 - 12.80", vbExclamation, "ท่านต้องกรอกตัวเลขผิด"
TextBox1.Value = ""
End If
ElseIf ComboBox1 > 27296 Then
If TextBox1.Value >= 11 And TextBox1.Value <= 12.8 Then
Sheets("CAL4").Range("C2").Value = TextBox1.Value
Else
MsgBox "เครื่องปรับอากาศเบอร์ 5 ที่มีขนาด >27,296 บีทียู/ชั่วโมง ประสิทธิภาพการทำความเย็น(EER) มีค่าตั้งแต่ 11.00 - 12.80", vbExclamation, "ท่านต้องกรอกตัวเลขผิด"
TextBox1.Value = ""
End If
Else
MsgBox "Not match any condition."
End If
Re: การใช้ if - vba ครับ
Posted: Fri Nov 13, 2015 10:58 am
by yodpao.b
Code: Select all
Else
MsgBox "Not match any condition."
End If
โคดบรรทัดนี้จะฟ้องตอนไหนครับ(หมายถึงคึย์อะไรแล้วจึงฟ้องครับ)
Re: การใช้ if - vba ครับ
Posted: Fri Nov 13, 2015 1:17 pm
by logic
อาจารย์เขียนเผื่อไว้ให้ครับ ความหมายก็ตามนั้น คือเมื่อไม่เข้าเงื่อนไขใดก็ค่อยแสดงข้อความในส่วนของ else หากเห็นว่าจะต้องเข้าเงื่อนไขใดๆ สักอันก่อนหน้าแน่นอน ลบออกได้ตามสะดวกครับ

Re: การใช้ if - vba ครับ
Posted: Fri Nov 13, 2015 3:56 pm
by yodpao.b
เข้าใจแล้วครับ
ขอบคุณครับ