Page 1 of 1
จับเวลา
Posted: Sat Jun 09, 2012 9:34 am
by sup
เรียน รบกวนอาจารย์ และท่านผู้รู้ทุกท่านครับ
ผมได้ลองเขียนCode VBA ใช้ในการจับเวลาขึ้นมาตั้งแต่เริ่มต้นการทำงาน จนสิ้นสุดการทำงาน ซึ่งเมื่อเขียนคำสั่งเดียวๆไม่ได้มีคำสั่งอื่นร่วมด้วยสามารถทำงานได้อย่างที่ต้องการครับ แต่พอปรับ Code ไปอยู่ร่วมกับคำสั่งอื่นที่ใช้ commandbutton เดียวกัน ปรากฎว่าทำงานไม่ได้ครับ (ตามไฟล์แนบผมมี CODE หาลำดับสุดท้ายอยู่ด้วย หากให้ทำงานทั้งคู่พร้อมกัน ตัวจับเวลาจะไม่ทำงานเลย) พยายามปรับ Code อยู่หลายครั้งแล้วแต่ก็ไม่ได้ผล จึงต้องรบกวนทุกท่านครับช่วยแนะนำที่ว่าจะปรับอย่างไรดี หรือควรแก้ไขอย่างไรครับ ผมเองเพิ่มเริ่มหัดเขียน VBA ครับ เรียกว่างูๆปลาๆอยู่มากครับ
ขอบคุณมากครับ
Re: จับเวลา
Posted: Sat Jun 09, 2012 10:01 am
by snasui
จับเวลาการทำงานตามที่ต้องการนั้นเป็นอย่างไรครับ เช่น เริ่มทำงานก็ให้เริ่มจับเวลา พอทำงานเสร็จก็ให้นับว่าใช้เวลาไปเท่าไร เช่นนี้หรือไม่ครับ
หากใช่ หลักการง่าย ๆ คือ เมื่อเริ่มทำงานให้เก็บตัวแปรเวลาเริ่มไว้ในเซลล์ใดเซลล์หนึ่ง เมื่อสิ้นสุดให้เก็บเวลาสิ้นสุดไว้ในเซลล์ใดเซลล์หนึ่ง หากต้องการทราบว่าใช้เวลาไปเท่าไรก็ให้นำเซลล์ทั้งสองมาลบกัน
Code: Select all
Sub Test()
[a1] = time
...'Other code
[a2] = time
End Sub
Re: จับเวลา
Posted: Sat Jun 09, 2012 10:37 am
by sup
ใช้ครับอาจารย์ ผมเก็บเวลาเริ่ม Start ไว้ที่ Sheet "List" N3 โดยมี Commandbutton1 ให้ Click และเวลาที่เสร็จที่ O3 โดยใช้ Commandbutton2 ให้ click โดยการใช้Code ให้ Copy ไปวาง แล้วใน P3 ใส่สูตร O3-N3 ผลลัพธ์เป็นเวลาที่ใช้ไป แล้วให้ Msgbox แจ้งผลให้ทราบครับ
ปัญหาอยู่ที่เมื่อผมเอา Code นี้ไปใช้ร่วมกับการค้นหาลำดับสุดท้ายที่ใช้ commandbutton1ด้วย (ในVBEผมใส่ ' เป็นCommentไว้ หากเอา ' ออก) ก็จะไม่จับเวลาครับ
Re: จับเวลา
Posted: Sat Jun 09, 2012 11:02 am
by sup
ขอบคุณมากครับอาจารย์ ผมทดลองใช้ Code ของอาจารย์แล้วใช้ได้แล้วครับ Code สั้นมากๆเลยครับ ไม่ยุ่งยากซับซ้อนด้วยครับ
ขอบคุณมากๆครับ
Re: จับเวลา
Posted: Sat Jun 09, 2012 11:25 am
by sup
ติดปัญหานิดหนึ่งครับ ต้องกลับมาถามอีกรอบครับ
1. ตรงที่เอาเวลาจาก 2 cell มาลบกัน ผลที่ได้จะไม่ถูกต้องครับ แก้ไขแย่างไรครับ
2. เวลาที่ได้จาก Time จะแสดงเป็นแบบ 12 ชั่วโมง มี AM,PM ถ้าทำเป็นแบบ 24 ชั่วโมงจะแก้ไขอย่างไรครับ
ขอบคุณล่วงหน้าครับ
Re: จับเวลา
Posted: Sat Jun 09, 2012 11:29 am
by snasui
แก้ไขด้วยการจัด Format ให้เป็น
h:mm:ss ครับ
Re: จับเวลา
Posted: Sat Jun 09, 2012 11:38 am
by sup
ขอบคุณมากๆครับอาจารย์ ทำได้แล้วครับ ขณะนี้กำลังทดลองอยู่ ก็ดูว่าไม่น่าจะมีปัญหาอะไรอีกครับ ตรงตามความต้องการเลยครับ
ขอขอบคุณอีกครั้งครับ
ปล. อย่าลืมทานข้าวกลางวันนะครับ
Re: จับเวลา
Posted: Thu Nov 22, 2012 4:51 pm
by amkea
สวัสดีค่ะอาจารย์ ดิฉันกำลังเขียนโค้ตจับเวลาในการสร้างเกมในโปรแกรม Excel 2007 เพื่อสอนให้เด็กใช้ในการแข่งขันค่ะ แต่ตอนนี้ติดปัญหาคือ โค้ตที่เขียนนั้นพอเวลาเดินแล้ว เมื่อผู้เล่นคลิกเพื่อตอบในเซลล์ใดๆ แล้ว เวลาหยุดเดินด้วย รบกวนอาจารย์ช่วยแนะนำด้วยค่ะ ไม่ได้เขียนโค้ตมานานมากแล้ว เพราะสอนนักเรียนประถม 4 เอง แต่พอดีว่าฝึกนักเรียนเข้าแข่งขันการสร้างเกมส์ เลยอยากจะเพิ่มการจับเวลาเข้าไปเผื่อจะสมบูรณ์มากขึ้นนะค่ะ รบกวนด้วยนะคะ และได้แนบไฟล์โค้ตตัวอย่างมาด้วยแล้วนะคะ
Re: จับเวลา
Posted: Thu Nov 22, 2012 8:01 pm
by snasui
กรณีอยู่ระหว่างทำการ Edit Cell เวลาจะหยุดเดิน ไม่สามารถแก้ให้เดินต่อเนื่องได้ครับ
Re: จับเวลา
Posted: Thu Sep 08, 2016 6:26 am
by hhhanger2529
ขอบคุณครับ
Re: จับเวลา
Posted: Thu Nov 16, 2017 10:37 am
by Tang
ไม่เคยเขียน code ใน excl นะค่ะ แต่อยากจะลองเขียนมาให้ในงานดูค่ะ
สูตรจับเวลาจะเขียนอย่างไรที่ค่ะ
สมุตว่า Sheet 1
Cell A1 กำหนดวันที่จ่าย Cell B1 กำหนดวันที่ครบกำหนด Cell C1 วันที่จ่ายคืน Cell D1 จับเวลา Cell E1 นับเวลาถอยหลัง
ใน Cell D1 อยากจะเขียนสุตรจับเวลา ตั้งแต่ Cell A1 จนถึง Cell C1 ใช้เวลากีวัน
ใน Cell E1 อยากจะเขียนสุตรนับเวลาถอยหลัง ตั้งแต่ Cell A1 ถึง Cell B1 ให้ใช้เวลา 30 วัน ถ้าเลย 30 วัน จะขึ้นคำว่า Over หรือ จำนวนวันที่ ที่เลยจาก 30 วัน ว่าเลยมากี่วัน จะต้องเขียนสูตรอย่างไรค่ะ
Re: จับเวลา
Posted: Thu Nov 16, 2017 11:01 am
by snasui
Tang wrote:ไม่เคยเขียน code ใน excl นะค่ะ แต่อยากจะลองเขียนมาให้ในงานดูค่ะ
สูตรจับเวลาจะเขียนอย่างไรที่ค่ะ
สมุตว่า Sheet 1
Cell A1 กำหนดวันที่จ่าย Cell B1 กำหนดวันที่ครบกำหนด Cell C1 วันที่จ่ายคืน Cell D1 จับเวลา Cell E1 นับเวลาถอยหลัง
ใน Cell D1 อยากจะเขียนสุตรจับเวลา ตั้งแต่ Cell A1 จนถึง Cell C1 ใช้เวลากีวัน
ใน Cell E1 อยากจะเขียนสุตรนับเวลาถอยหลัง ตั้งแต่ Cell A1 ถึง Cell B1 ให้ใช้เวลา 30 วัน ถ้าเลย 30 วัน จะขึ้นคำว่า Over หรือ จำนวนวันที่ ที่เลยจาก 30 วัน ว่าเลยมากี่วัน จะต้องเขียนสูตรอย่างไรค่ะ
กรุณาตั้งกระทู้ใหม่เนื่องจากไม่เกี่ยวกับหัวข้อนี้ครับ หัวข้อนี้เป็นการเขียน Code VBA ไม่ใช่สูตรแสดงระยะเวลาครบ Due ตามที่เขียนมาครับ
ช่วยแนบไฟล์ประกอบคำถาม แสดงให้เห็นว่าข้อมูลเป็นอย่างไร ต้องการคำตอบในเซลล์ไหน ด้วยคำตอบเท่าใด จะได้สะดวกในการทำความเข้าใจครับ