:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

สูตร วิธีเรียก macro ด้วย Enter

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
tamart256
Member
Member
Posts: 2
Joined: Mon Jan 05, 2015 9:52 am

สูตร วิธีเรียก macro ด้วย Enter

#1

Post by tamart256 »

ขอสูตร วิธีเรียก macro ด้วย Enter
เมื่อเราพิมข้อความเสร็จแล้ว กด Enter เรียก macro มา แทนที่เราจะไปกด ปุ่มบันทึกเวลา

งง หลายวันเลยครับบบบ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สูตร วิธีเรียก macro ด้วย Enter

#2

Post 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
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 30747
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สูตร วิธีเรียก macro ด้วย Enter

#3

Post 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
:D ควรให้คุณ tamart256 ได้นำเสนอที่ตนเองได้ลองทำมาแล้วก่อน เพื่อให้เป็นไปตามกฎด้านบนครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สูตร วิธีเรียก macro ด้วย Enter

#4

Post by bank9597 »

:oops: ผิกกฏจนได้
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
xxporxx
Member
Member
Posts: 29
Joined: Sat Nov 02, 2013 12:46 pm

Re: สูตร วิธีเรียก macro ด้วย Enter

#5

Post by xxporxx »

ผมขอถามต่อกระทู้นี้ นะครับ คือผมลองเอา Code นี้ไปใช้แล้วมันไม่ได้ผลครับ ไม่รู้ว่าผมใส่ Code ผิดที่หรือเปล่าครับ รบกวนช่วยชี้แนะด้วยนะครับ มือใหม่หัดเขียนครับ
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: สูตร วิธีเรียก macro ด้วย Enter

#6

Post by DhitiBank »

คุณ xxporxx เขียนโค้ดนี้ในชีท "สรุป" และในชีทดังกล่าวไม่มีวัตถุที่ชื่อ "RoundedRectangle1" ครับ ดังนั้นหากต้องการใช้คำสั่งแบบนี้ ก็ต้องใส่วัตถุ roundedrectangle1 ลงไป เขียนคำสั่งว่าเมื่อคลิกที่วัตถุนี้แล้วต้องการให้โปรแกรมทำอะไร จากนั้นลองทดสอบคีย์ข้อมูลในชีทสรุปแล้วกด Enter อีกครั้ง คำสั่งก็น่าจะทำงานได้ตลอดครับ
xxporxx
Member
Member
Posts: 29
Joined: Sat Nov 02, 2013 12:46 pm

Re: สูตร วิธีเรียก macro ด้วย Enter

#7

Post 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]
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: สูตร วิธีเรียก macro ด้วย Enter

#8

Post by DhitiBank »

หากต้องการให้โค้ดทำงานเมื่อมีการเปลี่ยนแปลงในชีท "ยอดจ่าย" เซลล์ A2 ลองปรับตรง
Target.Address = Range("a1").Address เป็น Target.Address = Range("a2").Address ครับ

ส่วนเรื่อง KeyCode นี่ผมไม่ทราบครับ คงต้องรออาจารย์และเพื่อนๆ ท่านอื่น

แต่ว่า หากต้องการให้โค้ดทำงานเมื่อเปลี่ยนแปลงค่าในเซลล์ดังกล่าวโดยไม่สนใจว่าจะกดปุ่มอะไร เช่น คีย์แล้วกด Enter, Tab, ลูกศรลง ฯลฯ ก็ไม่จำเป็นต้องเขียนโค้ดเพื่อดักจับว่ากดปุ่มอะไรก็ได้นะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30747
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สูตร วิธีเรียก macro ด้วย Enter

#9

Post 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
:D 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
Member
Posts: 29
Joined: Sat Nov 02, 2013 12:46 pm

Re: สูตร วิธีเรียก macro ด้วย Enter

#10

Post by xxporxx »

ขอบคุณทุกคำตอบนะครับ ตอนนี้ทำได้แล้วครับ
ขอบคุณมากครับ
แต่ว่าตอนมีปัญหาใหม่ครับ ขอตัวไปตั้งกระทู้ก่อนครับ
Jatuphon Phimpho
Member
Member
Posts: 5
Joined: Fri Dec 09, 2016 8:05 am

Re: สูตร วิธีเรียก macro ด้วย Enter

#11

Post by Jatuphon Phimpho »

ขออนุญาติถามครับ..
Key code =13 คือค่าอะไรครับ..
RoundedRectangle1 คือปุ่มที่เราสร้างมาเพื่อใช้ run macro แต่เราจะใช้ Enter runปุ่มนี้ แทนการ คลิ๊ก ปุ่มนี้ใช่ไหมครับ.
User avatar
snasui
Site Admin
Site Admin
Posts: 30747
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สูตร วิธีเรียก macro ด้วย Enter

#12

Post by snasui »

Jatuphon Phimpho wrote:ขออนุญาติถามครับ..
Key code =13 คือค่าอะไรครับ..
RoundedRectangle1 คือปุ่มที่เราสร้างมาเพื่อใช้ run macro แต่เราจะใช้ Enter runปุ่มนี้ แทนการ คลิ๊ก ปุ่มนี้ใช่ไหมครับ.
:D Key Code ต่าง ๆ ศึกษาจาก Link นี้ครับ Key Code

กรณี Enter แล้วให้ Code ทำงานสามารถประยุกต์ใช้ Worksheet_Change เข้ามาช่วยได้ ดูตัวอย่างในโพสต์ #9 ครับ :roll:
Post Reply