snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
g.piyanat
Member
Posts: 8 Joined: Sat Jun 29, 2019 4:09 pm
#1
Post
by g.piyanat » Sat Jun 29, 2019 4:27 pm
Code: Select all
Sheets("abc").Select
Range("D3:Q3").Select
Selection.Copy
Sheets("dfg").Select
Cells(1, Cells(2, Columns.Count).End(xlToLeft).Column + 1).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
จากCodeเก่า ถ้ารัน จะก็อปปี้ข้อมูลที่เลือกไว้จาก Sheets abcไป Sheets dfg โดยจะวางข้อมูลที่ก็อปปี้ไว้ไปวางไว้ตรงตำแหน่งที่ว่างทางขวามือต่อไปเรื่อยๆครับ
สิ่งที่อยากได้คือ ผมอยากจะให้ก็อปปี้ข้อมูลจากวางทางขวาให้วางลงมาเรื่อยๆแทนครับ
ขอบคุณครับ
Attachments
demo.xlsx
ตัวอย่างรูปแบบ (9.26 KiB) Downloaded 5 times
Last edited by
g.piyanat on Sat Jun 29, 2019 5:06 pm, edited 2 times in total.
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Sat Jun 29, 2019 4:32 pm
กรุณาแนบไฟล์ Excel ที่เขียน Code นี้เอาไว้แล้วมาด้วยจะได้สะดวกต่อการตอบปัญหาของเพื่อนสมาชิกครับ
นอกจากนี้ การโพสต์ Code VBA ให้ดูตัวอย่างการโพสต์ได้จากกฎการใช้บอร์ดข้อ 5 ด้านบน เพื่อที่จะแยกได้ว่าอันไหนเป็นข้อความ Code อันไหนเป็นข้อความทั่วไป จะได้สะดวกในการอ่านและการคัดลอกไปทดสอบครับ
g.piyanat
Member
Posts: 8 Joined: Sat Jun 29, 2019 4:09 pm
#3
Post
by g.piyanat » Sat Jun 29, 2019 4:41 pm
แก้ไขแล้วครับ ขอโทษที่ไม่อ่านระเบียบให้ดีครับ
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Sat Jun 29, 2019 5:51 pm
แนบไฟล์ที่มีนามสกุลเป็น .xlsm ซึ่งได้เขียน Code เอาไว้แล้ว สำหรับไฟล์ .xlsx จะไม่สามารถแนบ Code ได้ ลองแนบไฟล์มาใหม่อีกครั้งครับ
g.piyanat
Member
Posts: 8 Joined: Sat Jun 29, 2019 4:09 pm
#5
Post
by g.piyanat » Sat Jun 29, 2019 6:03 pm
ไฟล์เดิมมันมีข้อมูลอยู่ครับ และไม่ได้เป็นสิ่งที่อยากขอให้ช่วย เลยรบกวนขอเป็นช่วยเขียนcode ที่เอาไว้ก็อปปี้ข้อมูลที่เลือกไว้จากชีทนึงไปอีกชีทนึงให้หน่อยครับ โดยอยากให้ข้อมูลที่ก็อปปี้ไปวาง เรียงลงมาเรื่อยๆครับ ขอโทษด้วยครับ ตอนแรกคิดว่าเอาcodeเก่ามาแก้ไขอาจจะสะดวกกับอาจารย์และพี่ๆทุกท่านมากกว่าเขียนใหม่
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Sat Jun 29, 2019 6:06 pm
กรณีมีข้อมูลอยู่ให้เปลี่ยนเป็นข้อมูลตัวอย่าง ไม่จำเป็นต้องนำไฟล์จริงแนบมาครับ
Code ที่ขอให้แก้ควรเขียนมาเองแล้วอยู่ในไฟล์ โดยพร้อมที่จะให้ทดสอบการทำงานและแก้ไขให้เป็นไปตามสิ่งที่ต้องการตามกระทู้นี้ครับ
g.piyanat
Member
Posts: 8 Joined: Sat Jun 29, 2019 4:09 pm
#7
Post
by g.piyanat » Sat Jun 29, 2019 6:11 pm
ไม่ค่อยมีความรู้เรื่องcode VB ครับ แต่จะลองพยายามครับ ขอบพระคุณมากครับ
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Sat Jun 29, 2019 6:40 pm
ตัวอย่างการวางลงด้านล่างครับ
Code: Select all
Sheets("abc").Range("D3:Q3").Copy _
Sheets("dfg").Range("a" & Rows.Count).End(xlUp).Offset(1, 0)
กรณีติดปัญหาตรงไหน อย่างไร ให้ทำตามที่ผมแจ้งไปแล้ว คือต้องแนบไฟล์ที่มี Code นี้มาพร้อมแล้ว ซึ่งนอกจากจะช่วยให้สะดวกในการตอบแล้วยังจะสะดวกกับผู้ที่เริ่มต้นเรียนรู้ จะได้ทำความเข้าใจได้ง่ายด้วยครับ
g.piyanat
Member
Posts: 8 Joined: Sat Jun 29, 2019 4:09 pm
#9
Post
by g.piyanat » Sat Jun 29, 2019 7:23 pm
ขอบพระคุณมากๆเลยครับ ทดลองแล้วไม่ติดปัญหาครับ ขออภัยเรื่องแนบไฟล์และหัวข้อโพสให้เป็นข้อมูลศึกษาสำหรับประโยชน์ของผู้เรียนรู้นะครับ