สมมติว่าเรากำลังอยู่ในแฟ้มที่มี Range Name ชื่อ Source และ Target และต้องการสร้างชุดคำสั่งเพื่อทำหน้าที่ส่งค่ารวมทั้ง Format จาก Source ไปยัง Target ให้ใช้ Recorder บันทึกตามขั้นตอนต่อไปนี้

  1. กดปุ่ม F5 เลือกไปยัง Source
  2. กดปุ่ม Ctrl+c เพื่อสั่ง Copy
  3. กดปุ่ม F5 เลือกไปยัง Target
  4. กดปุ่ม Enter เพื่อ Paste

ชุดคำสั่งที่ได้จากการใช้ Macro Recorder

Sub CopySource2Target()
    Application.Goto Reference:="Source"
    Selection.Copy
    Application.Goto Reference:="Target"
    ActiveSheet.Paste
End Sub

แต่ถ้าไม่ต้องการนำ Format ตามไปที่ Target ด้วย ให้เปลี่ยนการบันทึก Macro ขั้นที่ 4 เป็น การคลิกขวาแล้วเลือก Paste Special > Values จะทำให้เกิดชุดคำสั่งต่างจากเดิมเล็กน้อยเป็น

Sub CopyDataSource2Target()
     Application.Goto Reference:="Source"
     Selection.Copy
     Application.Goto Reference:="Target"
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub

ซึ่งจะพบว่ารหัสในขั้นตอนการ Paste Special ที่ได้จากการบันทึก Macro เป็นรหัสที่ยาวเกินต้องการ ขอให้ตัดเหลือเพียง Selection.PasteSpecial Paste:=xlPasteValues ก็พอ กลายเป็นชุดคำสั่งที่สั้นและอ่านได้ความตามที่ต้องการมากขึ้นเป็น

Sub CopyDataSource2Target()
     Application.Goto Reference:="Source"
     Selection.Copy
     Application.Goto Reference:="Target"
     Selection.PasteSpecial Paste:=xlPasteValues
End Sub

Author: สมเกียรติ ฟุ้งเกียรติEmail: This email address is being protected from spambots. You need JavaScript enabled to view it.

E-Learning

Go to top