snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
chaiyo2541
Member
Posts: 12 Joined: Tue Dec 07, 2010 2:04 pm
#1
Post
by chaiyo2541 » Thu Dec 09, 2010 12:54 pm
สมมุติว่าตั้งเวลาไว้ 1 นาที่ พอหมด 1 นาที มันจะขึ้นว่า Game Over อะครับ ทำยังไงหรอครับ
บอกวิธีทำด้วยนะครับ ว่ากดปุ่มไหนยังไง
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Thu Dec 09, 2010 1:17 pm
ส่งไฟล์ตัวอย่างมาด้วยครับ ต้องการให้ชีทไหน เซลล์ไหนแสดงค่าอย่างไร การทำงานกับ VBA และผู้ถามไม่มีความรู้พื้นฐานมาบ้างนั้นไม่ง่ายนัก ต้องค่อย ๆ ทำความเข้าใจไปครับ
chaiyo2541
Member
Posts: 12 Joined: Tue Dec 07, 2010 2:04 pm
#3
Post
by chaiyo2541 » Thu Dec 09, 2010 2:45 pm
ทำยังไงหรอครับ แบบพอหมดเวลา 30 นาที แล้วมันจะขึ้น Game Over อะครับ
ช่วยบอกวิธีการทำด้วยนะครับว่ากดปุ่มอะไรยังไง
ปล. ขอบคุณครับ
Attachments
CountDown01.xls
แบบ พอหมดเวลา 30 นาทีแล้วจะให้มันขึ้นว่า Game Over อะครับ ทำยังไงหรอครับ ช่วยอธิบาวิธีการทำด้วยนะครับ ขอบคุณครับ (42 KiB) Downloaded 92 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu Dec 09, 2010 3:00 pm
ต้องแก้ Code VBA ตามด้านล่างครับ
Code: Select all
Sub Reset()
Dim count As Range
Set count = Worksheets("Sheet1").[A7]
On Error Resume Next
count.Value = count.Value - TimeValue("0:00:01")
If count <= 0 Then
MsgBox "Game Over" 'แ้ก้บรรทัดนี้ เดิมเป็น Call Reset1
Exit Sub
End If
Call Timer
End Sub
การเข้าไปแก้ Code ให้กดแป้น Alt+F11 > จะเข้าหน้าต่าง VBE > Double Click Module1 ในหน้าต่าง VBA Project ด้านซ้ายมือแล้วแก้
Sub Reset ให้เป็นไปตามด้านบน จากนั้นกดแป้น Alt+Q เพื่อกลับมายังหน้าจอ Excel > กดแป้น Start แล้วสังเกตดูผล
chaiyo2541
Member
Posts: 12 Joined: Tue Dec 07, 2010 2:04 pm
#5
Post
by chaiyo2541 » Thu Dec 09, 2010 3:11 pm
แล้วทำแบบหมดเวลา 30 นาที แล้วจะลิ้งก์ ไปหา Sheet 2 อะครับ ทำได้รึเปล่าครับ
แบบ Sheet 2 พิมพ์ Game Over ไว้อะครับ
Attachments
CountDown01.xls
(42 KiB) Downloaded 28 times
Last edited by
chaiyo2541 on Thu Dec 09, 2010 3:18 pm, edited 2 times in total.
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Thu Dec 09, 2010 3:14 pm
คำว่าเกมส์ Over พิมพ์ไว้เซลล์ไหนของ Sheet2 เนื่องจากเปิดดูแล้วไม่เจอครับ นอกจากนี้ที่บอกให้แก้ Code ก็ยังไม่ได้แก้ตามที่บอกเลยครับ
chaiyo2541
Member
Posts: 12 Joined: Tue Dec 07, 2010 2:04 pm
#7
Post
by chaiyo2541 » Thu Dec 09, 2010 3:19 pm
แล้วทำแบบหมดเวลา 30 นาที แล้วจะลิ้งก์ ไปหา Sheet 2 อะครับ ทำได้รึเปล่าครับ
แบบ Sheet 2 พิมพ์ Game Over ไว้อะครับ
อันใหม่ครับ เมื่อกี้ผมลืมแก้
Attachments
CountDown01.xls
(42 KiB) Downloaded 26 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Thu Dec 09, 2010 3:29 pm
หากจะใช้เวลานับถอยหลังที่เซลล์ A7 ตรง StartTime แก้เป็น
Code: Select all
Sub StartTime()
Worksheets("Sheet1").[A7].Value = TimeValue("00:30:00")
Worksheets("Sheet1").[A7].NumberFormat = "h:mm:ss"
Call Timer
End Sub
ส่วนกรณีหมดเวลา 30 นาทีแล้วให้ไปยัง Sheet2 สามารถปรับ Code ที่ Sub Reset เป็นตามด้านล่างครับ
Code: Select all
Sub Reset()
Dim count As Range
Set count = Worksheets("Sheet1").[A7]
On Error Resume Next
count.Value = count.Value - TimeValue("0:00:01")
If count <= 0 Then
Worksheets("Sheet2").Select
Exit Sub
End If
Call Timer
End Sub
chaiyo2541
Member
Posts: 12 Joined: Tue Dec 07, 2010 2:04 pm
#9
Post
by chaiyo2541 » Fri Dec 10, 2010 1:38 pm
ตั้งเวลา sheet ยังไงหรอครับ แบบสมมุติว่าตั้งเวลา sheet Game Over ไว้ 4 วินาที พอหมด 4 วินาที แล้วมันจะไปอีก sheet 3 ( Level 2 ) อะครับ
ทำยังไงหรอครับช่วยอธิบายการทำด้วยนะครับว่าทำยังไงอย่างไร
Attachments
CountDown01.xls
(48.5 KiB) Downloaded 29 times
Last edited by
chaiyo2541 on Mon Dec 13, 2010 10:17 am, edited 1 time in total.
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#11
Post
by snasui » Fri Dec 10, 2010 2:05 pm
คุณลองทำตามที่ผมแนะนำติดขัดตรงไหนก็ส่งไฟล์มาพร้อมคำอธิบายในสิ่งที่เป็นปัญหา ผมจะได้ดูว่าคุณทำถูกหรือผิดอย่างไรครับ
เป็นไฟล์อันเดียวกันกับที่คุณส่งมาครับ Code ก็อยู่ในนั้น ผมระบุตำแหน่งให้เรียบร้อยว่าแก้ตรงไหนครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Fri Dec 10, 2010 2:08 pm
โปรดทราบว่าผมไม่ได้อยู่หน้าจอตลอดเวลาและจะอ่านทุกความเห็น ไม่ควรโพสต์มาเพียง icon โดยไม่มีคำถามหรือไม่มีการแจ้งข้อมูลใดเพื่ออธิบายเพิ่มเติมครับ
Last edited by
snasui on Sat Dec 11, 2010 12:10 am, edited 1 time in total.
Reason: ปรับปรุงเพื่อให้ใจความสมบูรณ์
chaiyo2541
Member
Posts: 12 Joined: Tue Dec 07, 2010 2:04 pm
#13
Post
by chaiyo2541 » Fri Dec 10, 2010 3:05 pm
แล้วจะทำให้มันไปอีก Level ยังไงหรอครับ แบบให้ผล SUM ถึง 5 แล้วจะไป Level 2 อะครับ
ทำยังไงหรอครับ ช่วยบอกวิธีการทำ ด้วยนะครับ
-----------------------------------------------------
*** ยกมาจากกระทู้ ทำให้ไปอีก Level ยังไง เนื่องจากเห็นว่าเป็นคำถามที่เกี่ยวเนื่องกัน ***
Attachments
CountDown01.xls
(48.5 KiB) Downloaded 26 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Fri Dec 10, 2010 3:47 pm
สำหรับกระทู้ในความเห็นข้างบนนี้ผมนำมารวมกับหัวข้อ
ทำไงให้มันขึ้น Game Over ครับ เนื่องจากเป็นคำถามที่ต่อเนื่องกัน
มาอ่านอีกทีเลยไม่แน่ใจว่า สำหรับที่จะให้มันไปอีก Level เมื่อ T20 มีค่าเท่ากับ 5 เป็นเงื่อนไขต่อเนื่องจากนับเวลาหรือไม่ครับ
ควรเขียนเงื่อนไขที่เกี่ยวเนื่องมาให้ครบจะได้เขียน Code ทีเดียวครับ
raycity
Member
Posts: 10 Joined: Tue Nov 01, 2011 7:37 pm
#15
Post
by raycity » Mon Nov 28, 2011 8:24 pm
พิมพ์โค๊ดตามอาจารย์ทุกอย่าง
แต่ตัวเลขมันนิ่ง เวลามันไม่เดิน อะครับ
เป็นเพราะอะไรครับ
Attachments
สมุดงาน1.xlsx
(11.91 KiB) Downloaded 8 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Mon Nov 28, 2011 8:28 pm
การใช้ Macro หรือ VBA ใน Excel รุ่น 2007 ขึ้นไปจะต้องจัดเก็บ (Save As) เป็นนามสกุล .xlsm ถึงจะแนบ Code ไปกับไฟล์ได้ครับ ตอนนี้ Save มาเป็น .xlsx จึงไม่สามารถใช้งาน Code ได้ครับ
raycity
Member
Posts: 10 Joined: Tue Nov 01, 2011 7:37 pm
#17
Post
by raycity » Mon Nov 28, 2011 8:33 pm
จะทำยังไง ให้ เวลาเดิน ครับ
Attachments
สมุดงาน1.xlsm
(19.21 KiB) Downloaded 28 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#18
Post
by snasui » Mon Nov 28, 2011 8:37 pm
เวลาใน Sheet1 เซลล์ A7 เดินอยู่ครับ
หากความต้องการคือให้เวลาใน Sheet2 เซลล์ A7 ลดลงเรื่อย ๆ ก็ต้องเปลี่ยน Code ที่อ้างถึง Sheet1 ให้เป็น Sheet2 ทั้งหมดครับ
raycity
Member
Posts: 10 Joined: Tue Nov 01, 2011 7:37 pm
#19
Post
by raycity » Wed Nov 30, 2011 9:01 am
snasui wrote: เวลาใน Sheet1 เซลล์ A7 เดินอยู่ครับ
หากความต้องการคือให้เวลาใน Sheet2 เซลล์ A7 ลดลงเรื่อย ๆ ก็ต้องเปลี่ยน Code ที่อ้างถึง Sheet1 ให้เป็น Sheet2 ทั้งหมดครับ
ทำให้ เวลาเดินหลายๆ Sheet ได้ไหมครับ
raycity
Member
Posts: 10 Joined: Tue Nov 01, 2011 7:37 pm
#20
Post
by raycity » Wed Nov 30, 2011 9:16 am
raycity wrote: snasui wrote: เวลาใน Sheet1 เซลล์ A7 เดินอยู่ครับ
ทำให้ เวลาเดินหลายๆ Sheet ได้ไหมครับ
Attachments
แมโคร.xlsm
(19.6 KiB) Downloaded 35 times