7 พ.ค. เวลา 16:14 • การศึกษา

การใช้คำสั่ง Copy , และ Past special

การใช้คำสั่ง copy ในภาษา VBA (Visual Basic for Applications) เป็นเทคนิคพื้นฐานที่ช่วยให้คุณสามารถคัดลอกข้อมูลจากหนึ่ง worksheet ไปยังอีก worksheet หนึ่งได้อย่างง่ายดาย ในบทความนี้ ผมจะแนะนำวิธีการใช้คำสั่ง copy พร้อมด้วยตัวอย่างโค้ดที่คุณสามารถนำไปประยุกต์ใช้ได้ทันที
การใช้คำสั่ง .Copy ใน VBA
คำสั่ง .Copy ใน VBA ช่วยให้คุณคัดลอกข้อมูลจาก range หนึ่งไปยังอีก range หนึ่ง โดยสามารถระบุตำแหน่งที่ต้องการวางข้อมูลได้ ตัวอย่างโค้ดด้านล่างนี้จะแสดงวิธีการคัดลอกข้อมูลจาก Sheet1 ไปยัง Sheet2
Sub CopyRangeToAnotherSheet()
' กำหนด worksheet ต้นทางและปลายทาง
Dim sourceSheet As Worksheet
Dim destinationSheet As Worksheet
 
' ตั้งค่า worksheets
Set sourceSheet = ThisWorkbook.Worksheets("Sheet1")
Set destinationSheet = ThisWorkbook.Worksheets("Sheet2")
 
' คัดลอก range จาก sourceSheet ไปยัง destinationSheet
sourceSheet.Range("A1:B10").Copy destinationSheet.Range("A1")
End Sub
ในโค้ดข้างต้น sourceSheet.Range("A1:B10").Copy คือคำสั่งที่ใช้คัดลอกข้อมูลจาก cell A1 ถึง B10 ใน Sheet1 และ destinationSheet.Range("A1") คือตำแหน่งที่ต้องการวางข้อมูลใน Sheet2
การใช้คำสั่ง .PasteSpecial
คำสั่ง .PasteSpecial ใน VBA ช่วยให้คุณสามารถคัดลอกข้อมูลพิเศษ เช่น การคัดลอกเฉพาะค่า (values) หรือ การคัดลอกเฉพาะรูปแบบ (formats) ตัวอย่างโค้ดด้านล่างนี้จะแสดงวิธีการคัดลอกเฉพาะค่าจาก Sheet1 ไปยัง Sheet2
Sub CopyValuesToAnotherSheet()
' กำหนด worksheet ต้นทางและปลายทาง
Dim sourceSheet As Worksheet
Dim destinationSheet As Worksheet
 
' ตั้งค่า worksheets
Set sourceSheet = ThisWorkbook.Worksheets("Sheet1")
Set destinationSheet = ThisWorkbook.Worksheets("Sheet2")
 
' คัดลอกเฉพาะค่าจาก sourceSheet ไปยัง destinationSheet
sourceSheet.Range("A1:B10").Copy
destinationSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
โปรดทราบว่าหลังจากการวางข้อมูลด้วย .PasteSpecial คุณควรตั้งค่า Application.CutCopyMode = False เพื่อยกเลิกโหมดการคัดลอก เพื่อไม่ให้มีการคัดลอกข้อมูลอย่างไม่ตั้งใจเมื่อทำการคลิกใน cells อื่น

ดูเพิ่มเติมในซีรีส์

โฆษณา