Page 1 of 1

การสร้าง Macro แบบ นี้ ทำอย่างไรครับ

Posted: Sun Jul 21, 2024 6:28 pm
by NuchLeeFay
สามารถ สร้าง Macro แบบนี้ ได้หรือไม่ครับ

เมื่อ ตำแหน่ง อยู่ ที่ F5 (ตำแหน่งที่ Cursor อยู่ ) ทำการ Copy ข้อมูล ของ Cell ที่ Column ถัดไปด้านซ้าย 2 Column และ เหนือขึ้นไป 2 Row (D3) ไปวางที่ cell ที่ถัดไปทางขวา 6 Column (L5)

Image

โดย Macro นี้ จะ อ้างจุดเริ่มต้น จาก Cell ที่ ถูกเลือก เสมอ เช่น เมื่อ เปลี่ยนตำแหน่งของ Cell เริ่มต้น ไปที่ F9 จะไป Copy ที่ D7 ไปวางที่ L9

ขอบคุณครับ

ขอโทษที่อธิบายคำถาม งง นะครับ

Re: การสร้าง Macro แบบ นี้ ทำอย่างไรครับ

Posted: Sun Jul 21, 2024 6:54 pm
by snasui
:D สามารถทำได้ครับ

การเขียน Macro จะต้องเขียนมาเองก่อนเป็นกฎการใช้บอร์ดของที่นี่ ติดตรงไหนค่อยถามกันต่อครับ

ส่วนการอ้างอิงตำแหน่งสามารถใช้ Offset เข้ามาช่วยได้ เช่น

activecell.offset(-2,-2) แปลว่าจากเซลล์ปัจจุบันให้ไปยังเซลล์ด้านบนห่างจากเซลล์ปัจจุบัน 2 บรรทัดและไปด้านซ้าย 2 คอลัมน์

ถ้าเขียนเป็น

activecell.offset(2,8) แปลว่าจากเซลล์ปัจจุบันให้ลงไปด้านล่าง 2 บรรทัดและไปด้านขวา 8 คอลัมน์

และถ้าเขียนเป็น

activecell.offset(0,0) แปลว่าให้อยู่ที่เดิม

ลองทำความเข้าใจดูครับ

Re: การสร้าง Macro แบบ นี้ ทำอย่างไรครับ

Posted: Sun Jul 21, 2024 7:51 pm
by NuchLeeFay
ขอบคุณมากๆๆครับ

ตอนนี้ ได้ แบบนี้ แต่ มันดู ต้องทำต่อเนื่องจากแต่ละตำแหน่งไปเรื่อยๆๆ ดูแล้ว มันยาวมากๆๆ ครับ



Sub A_NewEGG()
'
' A_NewEGG Macro
'
'
ActiveCell.Activate
ActiveCell.Offset(-2, 0).Activate
Selection.Copy
ActiveCell.Offset(2, 0).Activate
ActiveSheet.Paste
ActiveCell.Offset(-1, 0).Activate
Selection.Copy
ActiveCell.Offset(1, 1).Activate
ActiveSheet.Paste
ActiveCell.Offset(-2, -16).Activate
Selection.Copy
ActiveCell.Offset(2, 17).Activate
ActiveSheet.Paste
ActiveCell.Offset(-2, -7).Activate
Selection.Copy
ActiveCell.Offset(2, 8).Activate
ActiveSheet.Paste
ActiveCell.Offset(-2, -7).Activate
Selection.Copy
ActiveCell.Offset(2, 8).Activate
ActiveSheet.Paste
ActiveCell.Offset(-2, -7).Activate
Selection.Copy
ActiveCell.Offset(2, 8).Activate
ActiveSheet.Paste
ActiveCell.Offset(-1, -20).Activate
Selection.Copy
ActiveCell.Offset(1, 21).Activate
ActiveSheet.Paste
ActiveCell.Offset(-1, -11).Activate
Selection.Copy
ActiveCell.Offset(1, 12).Activate
ActiveSheet.Paste
ActiveCell.Offset(-1, -11).Activate
Selection.Copy
ActiveCell.Offset(1, 12).Activate
ActiveSheet.Paste
ActiveCell.Offset(-1, -11).Activate
Selection.Copy
ActiveCell.Offset(1, 12).Activate
ActiveSheet.Paste
ActiveCell.Offset(0, -9).Activate
End Sub

Re: การสร้าง Macro แบบ นี้ ทำอย่างไรครับ

Posted: Sun Jul 21, 2024 9:02 pm
by snasui
:D กรุณาแนบไฟล์ตัวอย่างประกอบมาด้วยเสมอ เพื่อความสะดวกในการตอบของเพื่อนสมาชิก อธิบายถึงสิ่งที่ต้องการประกอบมาด้วยว่าหาก Code ทำงานถูกต้องผลลัพธ์จะมีลักษณะเป็นอย่างไร จะได้เข้าใจตรงกันครับ