Page 1 of 1
สูตร วิธีเรียก macro ด้วย Enter
Posted: Tue Feb 10, 2015 3:44 pm
by tamart256
ขอสูตร วิธีเรียก macro ด้วย Enter
เมื่อเราพิมข้อความเสร็จแล้ว กด Enter เรียก macro มา แทนที่เราจะไปกด ปุ่มบันทึกเวลา
งง หลายวันเลยครับบบบ
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Tue Feb 10, 2015 4:35 pm
by bank9597
ใช้ 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
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Tue Feb 10, 2015 7:26 pm
by snasui
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 ได้นำเสนอที่ตนเองได้ลองทำมาแล้วก่อน เพื่อให้เป็นไปตามกฎด้านบนครับ
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Tue Feb 10, 2015 7:52 pm
by bank9597
ผิกกฏจนได้
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Mon Nov 14, 2016 11:58 am
by xxporxx
ผมขอถามต่อกระทู้นี้ นะครับ คือผมลองเอา Code นี้ไปใช้แล้วมันไม่ได้ผลครับ ไม่รู้ว่าผมใส่ Code ผิดที่หรือเปล่าครับ รบกวนช่วยชี้แนะด้วยนะครับ มือใหม่หัดเขียนครับ
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Mon Nov 14, 2016 4:26 pm
by DhitiBank
คุณ xxporxx เขียนโค้ดนี้ในชีท "สรุป" และในชีทดังกล่าวไม่มีวัตถุที่ชื่อ "RoundedRectangle1" ครับ ดังนั้นหากต้องการใช้คำสั่งแบบนี้ ก็ต้องใส่วัตถุ roundedrectangle1 ลงไป เขียนคำสั่งว่าเมื่อคลิกที่วัตถุนี้แล้วต้องการให้โปรแกรมทำอะไร จากนั้นลองทดสอบคีย์ข้อมูลในชีทสรุปแล้วกด Enter อีกครั้ง คำสั่งก็น่าจะทำงานได้ตลอดครับ
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Tue Nov 15, 2016 1:34 pm
by xxporxx
ขอบคุณ คุณ 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]
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Tue Nov 15, 2016 3:43 pm
by DhitiBank
หากต้องการให้โค้ดทำงานเมื่อมีการเปลี่ยนแปลงในชีท "ยอดจ่าย" เซลล์ A2 ลองปรับตรง
Target.Address = Range("a1").Address
เป็น Target.Address = Range("a2").Address
ครับ
ส่วนเรื่อง KeyCode นี่ผมไม่ทราบครับ คงต้องรออาจารย์และเพื่อนๆ ท่านอื่น
แต่ว่า หากต้องการให้โค้ดทำงานเมื่อเปลี่ยนแปลงค่าในเซลล์ดังกล่าวโดยไม่สนใจว่าจะกดปุ่มอะไร เช่น คีย์แล้วกด Enter, Tab, ลูกศรลง ฯลฯ ก็ไม่จำเป็นต้องเขียนโค้ดเพื่อดักจับว่ากดปุ่มอะไรก็ได้นะครับ
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Wed Nov 16, 2016 7:46 pm
by snasui
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 ทำงานครับ
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Thu Nov 17, 2016 2:53 pm
by xxporxx
ขอบคุณทุกคำตอบนะครับ ตอนนี้ทำได้แล้วครับ
ขอบคุณมากครับ
แต่ว่าตอนมีปัญหาใหม่ครับ ขอตัวไปตั้งกระทู้ก่อนครับ
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Sat Dec 10, 2016 3:50 pm
by Jatuphon Phimpho
ขออนุญาติถามครับ..
Key code =13 คือค่าอะไรครับ..
RoundedRectangle1 คือปุ่มที่เราสร้างมาเพื่อใช้ run macro แต่เราจะใช้ Enter runปุ่มนี้ แทนการ คลิ๊ก ปุ่มนี้ใช่ไหมครับ.
Re: สูตร วิธีเรียก macro ด้วย Enter
Posted: Sat Dec 10, 2016 6:11 pm
by snasui
Jatuphon Phimpho wrote:ขออนุญาติถามครับ..
Key code =13 คือค่าอะไรครับ..
RoundedRectangle1 คือปุ่มที่เราสร้างมาเพื่อใช้ run macro แต่เราจะใช้ Enter runปุ่มนี้ แทนการ คลิ๊ก ปุ่มนี้ใช่ไหมครับ.
Key Code ต่าง ๆ ศึกษาจาก Link นี้ครับ
Key Code
กรณี Enter แล้วให้ Code ทำงานสามารถประยุกต์ใช้ Worksheet_Change เข้ามาช่วยได้ ดูตัวอย่างในโพสต์
#9 ครับ