snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sup
Member
Posts: 136 Joined: Mon Sep 13, 2010 11:36 am
#1
Post
by sup » Sat Jun 09, 2012 9:34 am
เรียน รบกวนอาจารย์ และท่านผู้รู้ทุกท่านครับ
ผมได้ลองเขียนCode VBA ใช้ในการจับเวลาขึ้นมาตั้งแต่เริ่มต้นการทำงาน จนสิ้นสุดการทำงาน ซึ่งเมื่อเขียนคำสั่งเดียวๆไม่ได้มีคำสั่งอื่นร่วมด้วยสามารถทำงานได้อย่างที่ต้องการครับ แต่พอปรับ Code ไปอยู่ร่วมกับคำสั่งอื่นที่ใช้ commandbutton เดียวกัน ปรากฎว่าทำงานไม่ได้ครับ (ตามไฟล์แนบผมมี CODE หาลำดับสุดท้ายอยู่ด้วย หากให้ทำงานทั้งคู่พร้อมกัน ตัวจับเวลาจะไม่ทำงานเลย) พยายามปรับ Code อยู่หลายครั้งแล้วแต่ก็ไม่ได้ผล จึงต้องรบกวนทุกท่านครับช่วยแนะนำที่ว่าจะปรับอย่างไรดี หรือควรแก้ไขอย่างไรครับ ผมเองเพิ่มเริ่มหัดเขียน VBA ครับ เรียกว่างูๆปลาๆอยู่มากครับ
ขอบคุณมากครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Sat Jun 09, 2012 10:01 am
จับเวลาการทำงานตามที่ต้องการนั้นเป็นอย่างไรครับ เช่น เริ่มทำงานก็ให้เริ่มจับเวลา พอทำงานเสร็จก็ให้นับว่าใช้เวลาไปเท่าไร เช่นนี้หรือไม่ครับ
หากใช่ หลักการง่าย ๆ คือ เมื่อเริ่มทำงานให้เก็บตัวแปรเวลาเริ่มไว้ในเซลล์ใดเซลล์หนึ่ง เมื่อสิ้นสุดให้เก็บเวลาสิ้นสุดไว้ในเซลล์ใดเซลล์หนึ่ง หากต้องการทราบว่าใช้เวลาไปเท่าไรก็ให้นำเซลล์ทั้งสองมาลบกัน
Code: Select all
Sub Test()
[a1] = time
...'Other code
[a2] = time
End Sub
sup
Member
Posts: 136 Joined: Mon Sep 13, 2010 11:36 am
#3
Post
by sup » Sat Jun 09, 2012 10:37 am
ใช้ครับอาจารย์ ผมเก็บเวลาเริ่ม Start ไว้ที่ Sheet "List" N3 โดยมี Commandbutton1 ให้ Click และเวลาที่เสร็จที่ O3 โดยใช้ Commandbutton2 ให้ click โดยการใช้Code ให้ Copy ไปวาง แล้วใน P3 ใส่สูตร O3-N3 ผลลัพธ์เป็นเวลาที่ใช้ไป แล้วให้ Msgbox แจ้งผลให้ทราบครับ
ปัญหาอยู่ที่เมื่อผมเอา Code นี้ไปใช้ร่วมกับการค้นหาลำดับสุดท้ายที่ใช้ commandbutton1ด้วย (ในVBEผมใส่ ' เป็นCommentไว้ หากเอา ' ออก) ก็จะไม่จับเวลาครับ
sup
Member
Posts: 136 Joined: Mon Sep 13, 2010 11:36 am
#4
Post
by sup » Sat Jun 09, 2012 11:02 am
ขอบคุณมากครับอาจารย์ ผมทดลองใช้ Code ของอาจารย์แล้วใช้ได้แล้วครับ Code สั้นมากๆเลยครับ ไม่ยุ่งยากซับซ้อนด้วยครับ
ขอบคุณมากๆครับ
sup
Member
Posts: 136 Joined: Mon Sep 13, 2010 11:36 am
#5
Post
by sup » Sat Jun 09, 2012 11:25 am
ติดปัญหานิดหนึ่งครับ ต้องกลับมาถามอีกรอบครับ
1. ตรงที่เอาเวลาจาก 2 cell มาลบกัน ผลที่ได้จะไม่ถูกต้องครับ แก้ไขแย่างไรครับ
2. เวลาที่ได้จาก Time จะแสดงเป็นแบบ 12 ชั่วโมง มี AM,PM ถ้าทำเป็นแบบ 24 ชั่วโมงจะแก้ไขอย่างไรครับ
ขอบคุณล่วงหน้าครับ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#6
Post
by snasui » Sat Jun 09, 2012 11:29 am
แก้ไขด้วยการจัด Format ให้เป็น
h:mm:ss ครับ
sup
Member
Posts: 136 Joined: Mon Sep 13, 2010 11:36 am
#7
Post
by sup » Sat Jun 09, 2012 11:38 am
ขอบคุณมากๆครับอาจารย์ ทำได้แล้วครับ ขณะนี้กำลังทดลองอยู่ ก็ดูว่าไม่น่าจะมีปัญหาอะไรอีกครับ ตรงตามความต้องการเลยครับ
ขอขอบคุณอีกครั้งครับ
ปล. อย่าลืมทานข้าวกลางวันนะครับ
amkea
Member
Posts: 4 Joined: Thu Nov 22, 2012 4:38 pm
#8
Post
by amkea » Thu Nov 22, 2012 4:51 pm
สวัสดีค่ะอาจารย์ ดิฉันกำลังเขียนโค้ตจับเวลาในการสร้างเกมในโปรแกรม Excel 2007 เพื่อสอนให้เด็กใช้ในการแข่งขันค่ะ แต่ตอนนี้ติดปัญหาคือ โค้ตที่เขียนนั้นพอเวลาเดินแล้ว เมื่อผู้เล่นคลิกเพื่อตอบในเซลล์ใดๆ แล้ว เวลาหยุดเดินด้วย รบกวนอาจารย์ช่วยแนะนำด้วยค่ะ ไม่ได้เขียนโค้ตมานานมากแล้ว เพราะสอนนักเรียนประถม 4 เอง แต่พอดีว่าฝึกนักเรียนเข้าแข่งขันการสร้างเกมส์ เลยอยากจะเพิ่มการจับเวลาเข้าไปเผื่อจะสมบูรณ์มากขึ้นนะค่ะ รบกวนด้วยนะคะ และได้แนบไฟล์โค้ตตัวอย่างมาด้วยแล้วนะคะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#9
Post
by snasui » Thu Nov 22, 2012 8:01 pm
กรณีอยู่ระหว่างทำการ Edit Cell เวลาจะหยุดเดิน ไม่สามารถแก้ให้เดินต่อเนื่องได้ครับ
Tang
Member
Posts: 1 Joined: Tue Jan 17, 2017 4:39 pm
#11
Post
by Tang » Thu Nov 16, 2017 10:37 am
ไม่เคยเขียน 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 วัน ว่าเลยมากี่วัน จะต้องเขียนสูตรอย่างไรค่ะ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#12
Post
by snasui » Thu Nov 16, 2017 11:01 am
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 ตามที่เขียนมาครับ
ช่วยแนบไฟล์ประกอบคำถาม แสดงให้เห็นว่าข้อมูลเป็นอย่างไร ต้องการคำตอบในเซลล์ไหน ด้วยคำตอบเท่าใด จะได้สะดวกในการทำความเข้าใจครับ