: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

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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 มา แทนที่เราจะไปกด ปุ่มบันทึกเวลา

งง หลายวันเลยครับบบบ
Attachments
ss.JPG
ss.JPG (171.77 KiB) Viewed 255 times
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: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
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 ผิดที่หรือเปล่าครับ รบกวนช่วยชี้แนะด้วยนะครับ มือใหม่หัดเขียนครับ
Attachments
ของแจก (Autosaved).xlsm
ไฟล์เอกสารครับ
(38.52 KiB) Downloaded 23 times
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]
Attachments
ของแจก (Autosaved).xlsm
ไฟล์ทดลองครับ
(38.16 KiB) Downloaded 22 times
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: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
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: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
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