: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

เรามีวิธีใส่codeเปลี่ยนเซลล์มั้ยครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Lazarusbee
Member
Member
Posts: 4
Joined: Thu Dec 08, 2022 7:49 pm
Excel Ver: 365

เรามีวิธีใส่codeเปลี่ยนเซลล์มั้ยครับ

#1

Post by Lazarusbee »

คือตอนนี้
ผมเขียนmodule1 ใส่ใน button1 ให้ดึงข้อมูลมาคำนวนแล้วใส่ข้อมูลนั้นลงในเซลล์ A1 ถึง A20
ผมเขียนmodule2 ใส่ใน button2 ให้ดึงข้อมูลมาคำนวนแล้วใส่ข้อมูลนั้นลงในเซลล์ B1 ถึง B20
........
..........
...........
ผมเขียนmodule10 ใส่ใน button10 ให้ดึงข้อมูลมาคำนวนแล้วใส่ข้อมูลนั้นลงในเซลล์ J1 ถึง J20


ที่ผมต้องเขียนแยกแต่ละ คอลัมน์เพราะบางครั้งต้องการข้อมูลแค่คอลัมน์เดียว เช่น ต้องการแค่คอลัมน์ A หรือต้องการ แค่คอลัมน์ C

จึงเรียนถามว่า เรามีวิธีเขียน code ยังไงให้ module เดียว ใช้ได้กับ คอลัมน์ A B จนถึง J ได้บ้างครับ ไม่อย่างนั้น Module ผมจะเยอะมากครับ
Last edited by Lazarusbee on Thu Dec 08, 2022 7:58 pm, edited 1 time in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เรามีวิธีใส่codeเปลี่ยนเซลล์มั้ยครับ

#2

Post by snasui »

:D กรุณาแนบไฟล์มาด้วย ตัดมาเฉพาะสิ่งที่เป็นปัญหาจะได้สะดวกในการตอบของเพื่อนสมาชิกครับ
Lazarusbee
Member
Member
Posts: 4
Joined: Thu Dec 08, 2022 7:49 pm
Excel Ver: 365

Re: เรามีวิธีใส่codeเปลี่ยนเซลล์มั้ยครับ

#3

Post by Lazarusbee »

ผมได้แนบไฟล์มาแล้วนะครับ โดยวิธีการทำงานคร่าวๆ คือพอกดปุ่มที่ Sheet 2 ก็จะไปดึงข้อมูลจาก Sheet 1 มากรอกครับ
อันนี้ภาพก่อนกดปุ่ม
before.jpg
อันนี้ภาพหลังกด ทั้ง 3 ปุ่ม
After.jpg
อันนี้คือ code ทั้ง 3 ปุ่ม

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=Table1[@Jan]"
End Sub
Sub Macro2()
'
' Macro1 Macro
'

'
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=Table1[@Feb]"
End Sub
Sub Macro3()
'
' Macro1 Macro
'

'
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "=Table1[@Mar]"
End Sub
แต่ละปุ่มจะเปลี่ยนแค่ เซลล์จาก B2 --> C2 ---> D2
ซึ่งถ้ามีข้อมูลต่อไปอีกก็จะมี macro เพิ่มเรื่อยๆจนจัดการลำบากตาครับ เราสามารถเขียน module ตัวเดียวที่ครอบคลุม จนปุ่มทั้ง 3 ปุ่มนำไปใช้ได้มั้ยครับ

ปล. ที่ต้องทำทีละปุ่ม เพราะบางทีต้องการข้อมูลแค่บางคอลัมน์ครับ ไม่ได้ต้องการข้อมูลทุกคอลัมน์พร้อมกัน
ปล. ที่เห็นว่างานดูง่ายๆเพราะแค่จำลองกระบวนการเสมือนเฉยๆครับ ไฟล์ตัวจริงค่อนข้างซับซ้อนในรายละเอียดกว่านี้มากครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เรามีวิธีใส่codeเปลี่ยนเซลล์มั้ยครับ

#4

Post by snasui »

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'

'
'    Range("B2").Select
'    ActiveCell.FormulaR1C1 = "=Table1[@Jan]"
    Dim ad As String
    ad = Worksheets("2").Cells(2, "xfd").End(xlToLeft).Offset(0, 1).Address
    Worksheets("2").Range(ad).Value = Worksheets("1").Range(ad).Value
End Sub
ลบค่าเดิมทิ้งไปก่อนแล้วกดปุ่มแรกซ้ำ ๆ แล้วสักเกตดูผลครับ
Lazarusbee
Member
Member
Posts: 4
Joined: Thu Dec 08, 2022 7:49 pm
Excel Ver: 365

Re: เรามีวิธีใส่codeเปลี่ยนเซลล์มั้ยครับ

#5

Post by Lazarusbee »

snasui wrote: Thu Dec 08, 2022 9:08 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'

'
'    Range("B2").Select
'    ActiveCell.FormulaR1C1 = "=Table1[@Jan]"
    Dim ad As String
    ad = Worksheets("2").Cells(2, "xfd").End(xlToLeft).Offset(0, 1).Address
    Worksheets("2").Range(ad).Value = Worksheets("1").Range(ad).Value
End Sub
ลบค่าเดิมทิ้งไปก่อนแล้วกดปุ่มแรกซ้ำ ๆ แล้วสักเกตดูผลครับ
ขอบคุณมากครับ ผมพยายามจะนำไปปรับใช้ แต่ก็ยังงงอยู่ครับ ว่า
- ถ้าต้องการข้อมูลแบบ สะเปะสะปะ เช่น คนที่ใช้ วันนี้จะเอาข้อมูล คอลัมน์ C (โดยคอลัมน์ B data ในSheet 1 ไม่มีค่ามาให้) หรือ อาจจะต้องการข้อมูล คอลัมน์อื่นๆขึ้นมาโดดๆโดยคอลัมน์ก่อนหน้าไม่มีข้อมูลล่ะครับ
- ด้วยเหตุนี้ผมจึงสร้าง button ในทุกคอลัมน์ เพื่อไว้ให้ผู้ใช้ต้องการข้อมูลอันไหนก็ click เฉพาะวันนั้นได้เลย แต่เนื่องด้วยไฟล์ตัวจริงมีคอลัมน์เยอะกว่านี้ อีกทั้งยังไม่รวมถึง macro งานอื่นๆที่อยู่ในไฟล์ excel อันนี้อีก ผมจึงพยายามย่นให้มีจำนวน macro ลดลงครับ

จึงรบกวนอีกรอบครับ Admin ว่าพอจะมีทางอื่นอีกมั้ยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เรามีวิธีใส่codeเปลี่ยนเซลล์มั้ยครับ

#6

Post by snasui »

:D การเขียน Code จะต้องมีเงื่อนไขที่ชัดเจน การที่สร้างปุ่มเพิ่มให้เลือกคลิกเฉพาะวันได้ก็แสดงว่าสร้างเงื่อนไขได้ ยกตัวอย่าง คลิกแล้วให้ผู้ใช้เลือกว่าจะดำเนินการกับคอลัมน์ไหน เมื่อผู้ใช้ระบุแล้วก็ให้ดำเนินการกับคอลัมน์นั้น ฯลฯ ครับ

ผู้ใช้สามารถระบุลงมาในเซลล์หรือว่าให้ขึ้น Input Box ให้ใส่ค่าตอนคลิกก็ทำได้เช่นกัน ศึกษา Input Box จากที่นี่ครับ https://learn.microsoft.com/en-us/offic ... n.inputbox
Lazarusbee
Member
Member
Posts: 4
Joined: Thu Dec 08, 2022 7:49 pm
Excel Ver: 365

Re: เรามีวิธีใส่codeเปลี่ยนเซลล์มั้ยครับ

#7

Post by Lazarusbee »

snasui wrote: Fri Dec 09, 2022 5:13 am :D การเขียน Code จะต้องมีเงื่อนไขที่ชัดเจน การที่สร้างปุ่มเพิ่มให้เลือกคลิกเฉพาะวันได้ก็แสดงว่าสร้างเงื่อนไขได้ ยกตัวอย่าง คลิกแล้วให้ผู้ใช้เลือกว่าจะดำเนินการกับคอลัมน์ไหน เมื่อผู้ใช้ระบุแล้วก็ให้ดำเนินการกับคอลัมน์นั้น ฯลฯ ครับ

ผู้ใช้สามารถระบุลงมาในเซลล์หรือว่าให้ขึ้น Input Box ให้ใส่ค่าตอนคลิกก็ทำได้เช่นกัน ศึกษา Input Box จากที่นี่ครับ https://learn.microsoft.com/en-us/offic ... n.inputbox
ขอบคุณมากครับ ผมจะไปศึกษาตามที่แนะนำครับ
Post Reply