Code VBA แสดงผลได้ไม่ครบทุกเงือนไข
Posted: Wed Jun 27, 2012 1:28 pm
เรียนอาจารย์ และท่านผู้รู้ทุกท่าน
ผมได้ลองเขียน Code VBA IF เปรียบเทียบข้อมูล (เพิ่มหัดศึกษาครับ) ปรากฎว่าเมื่อเขียนแล้ว Code แสดงผลแค่บางส่วน พยายามปรับหลายวันแล้วแต่ก็ไม่เป็นผลซักที่ เริ่มมึนครับ ไม่ทราบว่าผิดตรงไหน หรือว่าผิดทั้งหมด(แต่แสดงผลบางส่วนน่าจะพอถูกทางบ้าง) Codeที่เขียนมีข้อมูลดังนี้
ที่ Sheet1 Colum B ผมให้เป็น Colum สำหรับรับข้อมูลเก็บไว้ และรับเพิ่มต่อด้านท้ายต่อไปได้เรื่อยๆครับ
ที่ Sheet1 E3 ผมใส่สูตร ให้หาค่า Min ของ B ที่มีอยู่ทั้งหมด(ค่าเปลี่ยนแปลงได้ตามข้อมูลที่เปลี่ยนแปลง)
ที่ Sheet1 E5 ผมใส่สูตรหาค่า Avg ของ B ที่มีอยู่ทั้งหมด(ค่าเปลี่ยนแปลงได้ตามข้อมูลที่เปลี่ยนแปลง)
ที่ Sheet1 E7 ผมใส่สูตรหาค่า Max ของ B ที่มีอยู่ทั้งหมด(ค่าเปลี่ยนแปลงได้ตามข้อมูลที่เปลี่ยนแปลง)
ที่ Sheet1 C1 ผมให้เป็น Cell รับค่าที่จะทำการบันทึกใหม่ก่อนที่จะให้ส่งไปเก็บต่อท้ายที่ B
การเปรียบเทียบและผลที่ต้องการให้แสดง
ถ้า C1 < E3 ให้มี MsgBox “++Champion++คุณคือผู้ทำเวลาได้ดีที่สุดในขณะนี้”
ถ้า C1 = E3 ให้มี MsgBox “ดีมากครับ...คุณทำเวลาได้เท่ากับเวลาที่ดีที่สุดในขณะนี้”
ถ้า C1 > E3 แต่ < E5 ให้มี MsgBox “เกณฑ์ดีครับ...คุณทำเวลาได้ดีกว่าเวลาเฉลี่ยในขณะนี้”
ถ้า C1 = E5 ให้มี MsgBox “เกณฑ์พอใช้ครับ...คุณใช้เวลาเท่ากับเวลาเฉลี่ยในขณะนี้”
ถ้า C1 > E5 แต่ < E7 ให้มี MsgBox “ต้องปรับปรุงนะครับ...คุณใช้เวลามากกว่าเวลาเฉลี่ยในขณะนี้ครับ”
ถ้า C1 = E7 ให้มี MsgBoc “รีบปรับปรุงด่วนครับ...คุณใช้เวลาเท่ากับเวลาที่แย่ที่สุดในขณะนี้”
ถ้า C1 > E7 ให้มี MsgBox “ว้าาา...แย่จัง คุณใช้เวลานานที่สุดในขณะนี้ ต้องพยายามอย่างมากครับ”
ผมวาง Codeใน Sheet1 ครับ
ต้องรบกวนทุกท่านครับ ผมต้องแก้ไขตรงไหนอย่างไรครับ และต้องขอขอบคุณล่วงหน้าครับ
และมีอีก 1 คำถาม ผมได้สร้าง UserFormไว้ มี CommandButton ผมสามารถวาง Code นี้ในนั้นได้ไหมครับ (ยังไม่ได้ลองครับ)
CODE ครับ
ผมได้ลองเขียน Code VBA IF เปรียบเทียบข้อมูล (เพิ่มหัดศึกษาครับ) ปรากฎว่าเมื่อเขียนแล้ว Code แสดงผลแค่บางส่วน พยายามปรับหลายวันแล้วแต่ก็ไม่เป็นผลซักที่ เริ่มมึนครับ ไม่ทราบว่าผิดตรงไหน หรือว่าผิดทั้งหมด(แต่แสดงผลบางส่วนน่าจะพอถูกทางบ้าง) Codeที่เขียนมีข้อมูลดังนี้
ที่ Sheet1 Colum B ผมให้เป็น Colum สำหรับรับข้อมูลเก็บไว้ และรับเพิ่มต่อด้านท้ายต่อไปได้เรื่อยๆครับ
ที่ Sheet1 E3 ผมใส่สูตร ให้หาค่า Min ของ B ที่มีอยู่ทั้งหมด(ค่าเปลี่ยนแปลงได้ตามข้อมูลที่เปลี่ยนแปลง)
ที่ Sheet1 E5 ผมใส่สูตรหาค่า Avg ของ B ที่มีอยู่ทั้งหมด(ค่าเปลี่ยนแปลงได้ตามข้อมูลที่เปลี่ยนแปลง)
ที่ Sheet1 E7 ผมใส่สูตรหาค่า Max ของ B ที่มีอยู่ทั้งหมด(ค่าเปลี่ยนแปลงได้ตามข้อมูลที่เปลี่ยนแปลง)
ที่ Sheet1 C1 ผมให้เป็น Cell รับค่าที่จะทำการบันทึกใหม่ก่อนที่จะให้ส่งไปเก็บต่อท้ายที่ B
การเปรียบเทียบและผลที่ต้องการให้แสดง
ถ้า C1 < E3 ให้มี MsgBox “++Champion++คุณคือผู้ทำเวลาได้ดีที่สุดในขณะนี้”
ถ้า C1 = E3 ให้มี MsgBox “ดีมากครับ...คุณทำเวลาได้เท่ากับเวลาที่ดีที่สุดในขณะนี้”
ถ้า C1 > E3 แต่ < E5 ให้มี MsgBox “เกณฑ์ดีครับ...คุณทำเวลาได้ดีกว่าเวลาเฉลี่ยในขณะนี้”
ถ้า C1 = E5 ให้มี MsgBox “เกณฑ์พอใช้ครับ...คุณใช้เวลาเท่ากับเวลาเฉลี่ยในขณะนี้”
ถ้า C1 > E5 แต่ < E7 ให้มี MsgBox “ต้องปรับปรุงนะครับ...คุณใช้เวลามากกว่าเวลาเฉลี่ยในขณะนี้ครับ”
ถ้า C1 = E7 ให้มี MsgBoc “รีบปรับปรุงด่วนครับ...คุณใช้เวลาเท่ากับเวลาที่แย่ที่สุดในขณะนี้”
ถ้า C1 > E7 ให้มี MsgBox “ว้าาา...แย่จัง คุณใช้เวลานานที่สุดในขณะนี้ ต้องพยายามอย่างมากครับ”
ผมวาง Codeใน Sheet1 ครับ
ต้องรบกวนทุกท่านครับ ผมต้องแก้ไขตรงไหนอย่างไรครับ และต้องขอขอบคุณล่วงหน้าครับ
และมีอีก 1 คำถาม ผมได้สร้าง UserFormไว้ มี CommandButton ผมสามารถวาง Code นี้ในนั้นได้ไหมครับ (ยังไม่ได้ลองครับ)
CODE ครับ
Code: Select all
Sub CommandButton1_Click()
If [C1] < [E3] Then
MsgBox "++Champion++ คุณคือผู้ทำเวลาได้ดีที่สุดในขณะนี้"
ElseIf [C1] = [E3] Then
MsgBox "ดีมากครับ...คุณทำเวลาได้เท่ากับเวลาที่ดีที่สุดในขณะนี้"
ElseIf [C1] > [E3] Then
MsgBox "เกณฑ์ดีครับ...คุณทำเวลาได้ดีกว่าเวลาเฉลี่ยในขณะนี้"
ElseIf [C1] = [E5] Then
MsgBox "เกณฑ์พอใช้ครับ...คุณใช้เวลาเท่ากับเวลาเฉลี่ยในขณะนี้"
ElseIf [C1] > [E5] Then
MsgBox "ต้องปรับปรุงนะครับ...คุณใช้เวลามากกว่าเวลาเฉลี่ยในขณะนี้ครับ"
ElseIf [C1] = [E7] Then
MsgBox "รีบปรับปรุงด่วนครับ...คุณใช้เวลาเท่ากับเวลาที่แย่ที่สุดในขณะนี้"
Else:
MsgBox "ว้าาา...แย่จัง คุณใช้เวลานานที่สุดในขณะนี้ ต้องพยายามอย่างมากครับ"
End If
End Sub