snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#1
Post
by pimwalan » Sat Jan 19, 2013 5:40 pm
ต้องการจะล็อกเซลล์เพื่อไม่ให้แก้ไข ยกเว้นเซลล์ที่ต้องการกรอกคำตอบ
(สีฟ้า) รวมทั้งเซลล์ที่แสดงเวลานับถอยหลังและปุ่มเริ่มเกม แต่หลังจากที่ล็อกเซลล์แล้วทำการคลิกปุ่มเริ่มเล่นเกมด่านที่ 1
ก็เจอ Debug ดังรูปคะ
พอกด Debug มีแถบสีเหลืองๆ ตรง .[a1].value = numberformat = “h:mm:ss”
ช่วยดูโค้ดที่ส่งไฟล์ไปให้ด้วยนะคะ และวิธีการแก้ไขในโค้ดด้วยคะ พอดีต้องการฝึกทักษะการสร้างเกม Excel ของเด็กนักเรียน ต้นเดือนกุมภาพันธ์นี้คะ ขอขอบคุณล่วงหน้าคะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Sat Jan 19, 2013 7:31 pm
Mark ให้เป็น Comment ไปก่อนครับ Statement นั้นเป็นคำสั่งเพื่อการจัด Format เท่านั้น
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#4
Post
by pimwalan » Sat Jan 19, 2013 8:50 pm
คุณคนควนคะ ถ้าดิฉันต้องการสร้างปุ่มสักหนึ่งปุ่ม มาสั่งการให้เคลียร์ข้อมูลในเซลล์ที่อ้างอิงเซลล์อื่นๆ ทั้งหมด เช่นกรอกชื่อผู้เล่นที่ sheet 1 เซลล์ที่ a1 แล้วมันก็อ้างอิง sheet 2 เซลล์ a1 แล้วมันก็อ้างอิง sheet 3 เซลล์ a1
vba เขียนอย่างไรคะ
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#5
Post
by pimwalan » Sat Jan 19, 2013 8:51 pm
คำสั่ง range("A1:IV65530").ClearContents มันลบแค่เฉพาะ sheet นั้นๆคะ
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Sat Jan 19, 2013 8:54 pm
ถ้าต้องการให้ลบชีทอื่น ๆ ก็ระบุชีทเข้าไปด้วยครับ ลองบันทึก Mocro ดูการลบหลาย ๆ ชีทว่าโปรแกรมสร้าง Code มาให้อย่างไร จะได้นำไปใช้ได้ครับ
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#7
Post
by pimwalan » Sat Jan 19, 2013 9:12 pm
ระบุ Sheet อย่างไรคะ แบบนี้หรือเปล่า สร้างปุ่ม มาหนึ่งปุ่ม ที่ชีทชื่อ score
Sub cleardata()
With Worksheets("score") ปุึ่มอยู่ที่ sheet ชื่อ score
Range("G19.:IV65530").ClearContents ต้องการให้ลบตำแหน่ง g19 sheet 1
Range("G19:IV65530").ClearContents ต้องการให้ลบตำแหน่ง g19 sheet 2
End With
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Sat Jan 19, 2013 9:16 pm
การโพสต์ Code ให้แสดงเป็น Code ดูตัวอย่างที่นี่ครับ
http://www.snasui.com/viewtopic.php?f=3&t=1187 จะได้สะดวกในการอ่านและการ Copy ไปทดสอบ
สำหรับที่ถามมานั้น ให้อ้างชื่อชีททุกชีทที่เราต้องการไปลบค่าในเซลล์ของชีทนั้น ๆ ครับ เช่น
Code: Select all
Sheets("Sheet1").Range("A1").ClearContents
Sheets("Sheet2").Range("A1").ClearContents
Sheets("Sheet3").Range("A1").ClearContents
Sheets("Sheet4").Range("A1").ClearContents
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#9
Post
by pimwalan » Sat Jan 19, 2013 9:41 pm
จะติดปัญหาตรงที่ ชีท sport1 ซึ่ง เซลล์ที่ n11 เป็นการแสดงคะแนน ที่เคลียร์ไม่ได้คะ เพราะว่า Lock เซลล์อยู่เกี่ยวกันหรือเปล่าคะ
มันจะขึ้น Error ดังรูปคะ อย่างนี้คะ
Code: Select all
Sub cleardata2()
Sheets("Sheet1").Range("A10").ClearContents
Sheets("Sheet2").Range("A10").ClearContents
Sheets("Sport1").Range("n11").ClearContents
End Sub
You do not have the required permissions to view the files attached to this post.
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#10
Post
by pimwalan » Sat Jan 19, 2013 9:54 pm
โอเคคะ พอดีได้แล้วคะ พอดี link ผิดนิดหน่อยคะ
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#11
Post
by pimwalan » Sat Jan 19, 2013 10:16 pm
สร้างปุ่มชื่อ cleardata เพื่อสั่งให้ลบข้อความในชีทเดียวกัน แต่คนละเซลล์ สามารถทำคำสั่งให้สั้นๆ กว่านี้ได้ใหมคะ หรือจะต้องเขียนโปรแกรมให้ยาวแบบนี้ เพราะต้องเคลียร์เกือบ 15 เซลล์ในหนึ่งชีทเลยคะ
Code: Select all
Sub cleardata2()
Sheets("sport1").Range("i15").ClearContents
Sheets("sport1").Range("k15").ClearContents
Sheets("sport1").Range("c21").ClearContents
Sheets("sport1").Range("e21").ClearContents
Sheets("sport1").Range("g21").ClearContents
End Sub
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Sat Jan 19, 2013 10:20 pm
สามารถทำได้ครับ จากตัวอย่างที่เขียนมาสามารถเขียนได้เป็น
Code: Select all
Sheets("sport1").Range("i15,k15,c21,e21,q21").ClearContents
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#13
Post
by pimwalan » Sat Jan 19, 2013 10:32 pm
สร้างปุ่มออกจากโปรแกรม มีคำสั่งที่ง่าย สั้น ที่นอกเหนือกว่านี้อีกใหมคะ ถ้ามีช่วยแนะนำด้วยคะ
Code: Select all
Sub gameclose()
With Worksheets("score")
Application.DisplayAlerts = False
Application.Quit
End With
End Sub
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Sat Jan 19, 2013 11:04 pm
คำสั่งพวกนั้นไม่ได้ยาวจนเกินไป ผมเห็นว่าไม่จำเป็นต้องปรับ พยายามถามเฉพาะที่เป็นปัญหาครับ
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#15
Post
by pimwalan » Sat Jan 19, 2013 11:26 pm
มีคำสั่งเกี่ยวกับการเล่นไฟล์เสียงที่สามารถสั่งในเล่นไปทุกชีทใหมคะ
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Sat Jan 19, 2013 11:30 pm
ด้วย VBA สามารถทำได้ทั้งนั้นครับ แต่ต้องเขียนมาเองก่อนทุก ๆ ครั้ง ถามเฉพาะที่ติดปัญหาเท่านั้นครับ
pimwalan
Member
Posts: 25 Joined: Sat Jan 19, 2013 4:06 pm
#17
Post
by pimwalan » Sun Jan 20, 2013 12:58 am
พอดีเขียนโค้ดแล้วเจอ error แบบนี้คะ คืออะไรค่ะ และมีวิธีการแก้ไขอย่างไรบ้างคะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#18
Post
by snasui » Sun Jan 20, 2013 6:26 am
แก้ไขด้วยการยกเลิกการ Locked เซลล์ที่จะทำการเปลี่ยนแปลงครับ การฟ้องแบบนั้นแจ้งว่าไปทำการเปลี่ยนแปลงเซลล์ที่มีการ Protect เอาไว้ครับ