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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
tamart256
Member
Posts: 2 Joined: Mon Jan 05, 2015 9:52 am
#1
Post
by tamart256 » Tue Feb 10, 2015 3:44 pm
ขอสูตร วิธีเรียก macro ด้วย Enter
เมื่อเราพิมข้อความเสร็จแล้ว กด Enter เรียก macro มา แทนที่เราจะไปกด ปุ่มบันทึกเวลา
งง หลายวันเลยครับบบบ
You do not have the required permissions to view the files attached to this post.
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#2
Post
by bank9597 » Tue Feb 10, 2015 4:35 pm
ใช้ event onKeyPress ครับ
ปรับโค๊ดจากตัวอย่างโค๊ดนี้ได้เลยครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
If KeyCode = 13 Then
With Worksheets("Sheet1")
.RoundedRectangle1_Click
End With
End If
End Sub
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#3
Post
by snasui » Tue Feb 10, 2015 7:26 pm
bank9597 wrote: ใช้ event onKeyPress ครับ
ปรับโค๊ดจากตัวอย่างโค๊ดนี้ได้เลยครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
If KeyCode = 13 Then
With Worksheets("Sheet1")
.RoundedRectangle1_Click
End With
End If
End Sub
ควรให้คุณ tamart256 ได้นำเสนอที่ตนเองได้ลองทำมาแล้วก่อน เพื่อให้เป็นไปตามกฎด้านบนครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#4
Post
by bank9597 » Tue Feb 10, 2015 7:52 pm
ผิกกฏจนได้
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
xxporxx
Member
Posts: 29 Joined: Sat Nov 02, 2013 12:46 pm
#5
Post
by xxporxx » Mon Nov 14, 2016 11:58 am
ผมขอถามต่อกระทู้นี้ นะครับ คือผมลองเอา Code นี้ไปใช้แล้วมันไม่ได้ผลครับ ไม่รู้ว่าผมใส่ Code ผิดที่หรือเปล่าครับ รบกวนช่วยชี้แนะด้วยนะครับ มือใหม่หัดเขียนครับ
You do not have the required permissions to view the files attached to this post.
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#6
Post
by DhitiBank » Mon Nov 14, 2016 4:26 pm
คุณ xxporxx เขียนโค้ดนี้ในชีท "สรุป" และในชีทดังกล่าวไม่มีวัตถุที่ชื่อ "RoundedRectangle1" ครับ ดังนั้นหากต้องการใช้คำสั่งแบบนี้ ก็ต้องใส่วัตถุ roundedrectangle1 ลงไป เขียนคำสั่งว่าเมื่อคลิกที่วัตถุนี้แล้วต้องการให้โปรแกรมทำอะไร จากนั้นลองทดสอบคีย์ข้อมูลในชีทสรุปแล้วกด Enter อีกครั้ง คำสั่งก็น่าจะทำงานได้ตลอดครับ
xxporxx
Member
Posts: 29 Joined: Sat Nov 02, 2013 12:46 pm
#7
Post
by xxporxx » Tue Nov 15, 2016 1:34 pm
ขอบคุณ คุณ DhitiBank ครับ
แต่ว่าผมก็ยังทำไม่ได้ครับ(กำลังพยายามทำต่อไป)
แล้ว RoundedRectangle1 คืออะไรครับ
ผมลองเพิ่ม Code เข้าไปก็ไม่มีอะไรเกิดขึ้นเลยครับไม่ทราบว่าเป็นเพราะอะไรครับ
(Code นี้ผมจะเอาไว้ที่ชีตยอดจ่ายครับจะได้ไม่ต้องกดปุ่มบันทึกครับเป็นกด Enter แทนครับ)
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Address = Range("a1").Address) Then
If KeyDown = 13 Then
With Worksheets("wkPay")
End With
End If
End If
End Sub
[/code]
You do not have the required permissions to view the files attached to this post.
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#8
Post
by DhitiBank » Tue Nov 15, 2016 3:43 pm
หากต้องการให้โค้ดทำงานเมื่อมีการเปลี่ยนแปลงในชีท "ยอดจ่าย" เซลล์ A2 ลองปรับตรง
Target.Address = Range("a1").Address
เป็น Target.Address = Range("a2").Address
ครับ
ส่วนเรื่อง KeyCode นี่ผมไม่ทราบครับ คงต้องรออาจารย์และเพื่อนๆ ท่านอื่น
แต่ว่า หากต้องการให้โค้ดทำงานเมื่อเปลี่ยนแปลงค่าในเซลล์ดังกล่าวโดยไม่สนใจว่าจะกดปุ่มอะไร เช่น คีย์แล้วกด Enter, Tab, ลูกศรลง ฯลฯ ก็ไม่จำเป็นต้องเขียนโค้ดเพื่อดักจับว่ากดปุ่มอะไรก็ได้นะครับ
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 » Wed Nov 16, 2016 7:46 pm
xxporxx wrote: ผมลองเพิ่ม Code เข้าไปก็ไม่มีอะไรเกิดขึ้นเลยครับไม่ทราบว่าเป็นเพราะอะไรครับ
(Code นี้ผมจะเอาไว้ที่ชีตยอดจ่ายครับจะได้ไม่ต้องกดปุ่มบันทึกครับเป็นกด Enter แทนครับ)
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Address = Range("a1").Address) Then
If KeyDown = 13 Then
With Worksheets("wkPay")
End With
End If
End If
End Sub
Code ที่เพิ่มเข้ามานี้
ไม่มีคำสั่งให้เกิดการทำงาน ครับ
Code ที่จะสั่งให้เกิดการทำงานคือด้านล่างครับ
snasui wrote: Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
If KeyCode = 13 Then
With Worksheets("Sheet1")
.RoundedRectangle1_Click '<== บรรทัดนี้เป็นการสั่งให้ทำงาน
End With
End If
End Sub
จากคำถามนี้
xxporxx wrote: แล้ว RoundedRectangle1 คืออะไรครับ
คือสี่เหลี่ยมมุมป้าน กำหนดการ Run Macro ไว้กับปุ่มนี้ ใช้คลิกเพื่อให้ Macro ทำงานครับ
xxporxx
Member
Posts: 29 Joined: Sat Nov 02, 2013 12:46 pm
#10
Post
by xxporxx » Thu Nov 17, 2016 2:53 pm
ขอบคุณทุกคำตอบนะครับ ตอนนี้ทำได้แล้วครับ
ขอบคุณมากครับ
แต่ว่าตอนมีปัญหาใหม่ครับ ขอตัวไปตั้งกระทู้ก่อนครับ
Jatuphon Phimpho
Member
Posts: 5 Joined: Fri Dec 09, 2016 8:05 am
#11
Post
by Jatuphon Phimpho » Sat Dec 10, 2016 3:50 pm
ขออนุญาติถามครับ..
Key code =13 คือค่าอะไรครับ..
RoundedRectangle1 คือปุ่มที่เราสร้างมาเพื่อใช้ run macro แต่เราจะใช้ Enter runปุ่มนี้ แทนการ คลิ๊ก ปุ่มนี้ใช่ไหมครับ.
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 » Sat Dec 10, 2016 6:11 pm
Jatuphon Phimpho wrote: ขออนุญาติถามครับ..
Key code =13 คือค่าอะไรครับ..
RoundedRectangle1 คือปุ่มที่เราสร้างมาเพื่อใช้ run macro แต่เราจะใช้ Enter runปุ่มนี้ แทนการ คลิ๊ก ปุ่มนี้ใช่ไหมครับ.
Key Code ต่าง ๆ ศึกษาจาก Link นี้ครับ
Key Code
กรณี Enter แล้วให้ Code ทำงานสามารถประยุกต์ใช้ Worksheet_Change เข้ามาช่วยได้ ดูตัวอย่างในโพสต์
#9 ครับ