รหัสที่ถูกบันทึกหรือเขียนไว้ใน VBE จะคงที่ตามเดิมไปตลอด ไม่มีการเปลี่ยนแปลงแก้ไขส่วนหนึ่งส่วนใดอีกต่อไป จนกว่าเราจะเข้าไปแก้ไขเอง ซึ่งเป็นจุดอ่อนที่สำคัญของตัว VBE ทำให้เกิดปัญหาแทบทุกครั้งที่โครงสร้างข้อมูล ชื่อชีท หรือตำแหน่งเซลล์ในตารางเปลี่ยนที่ไปจากเดิม ส่งผลให้ VBA ทำงานผิดพลาด จนกว่าเราจะเข้าไปปรับปรุงรหัสที่อ้างถึงตำแหน่งต่างๆในตารางตามจริงอีกครั้ง

image007

ตามตัวอย่างข้างต้น หากต้องการใช้ VBA เลือกพื้นที่ตั้งแต่เซลล์ที่มีเลข 11 จนถึงเซลล์ที่มีเลข 88 ให้ใช้เมนู Formulas > Define Name ตั้งชื่อ Range A1:D2 สมมติว่าใช้ชื่อ Range Name ว่า MyData

จากนั้นให้ใช้ Macro Recorder บันทึกการกดปุ่ม F5 แล้วเลือกชื่อ Range Name ชื่อ MyData ที่แสดงขึ้น จะทำให้เกิดรหัส VBA ดังนี้

Application.Goto Reference:="MyData"

ซึ่งจะพบว่ารหัสเพียงบรรทัดเดียวนี้สามารถใช้งานได้ตลอดไป โดยไม่ต้องเสียแรงเสียเวลากลับมาแก้ไขอะไรอีก ไม่ว่าจะมีการย้ายตำแหน่งข้อมูลจากเดิม A1:D2 ไปอยู่ที่เซลล์อื่น ชีทอื่น หรือแฟ้มอื่น หรือแม้ว่าตารางที่เก็บข้อมูลเดิมนั้น ไม่ได้มีเซลล์เก็บข้อมูลต่อเนื่องกันเช่นเดิมแล้วก็ตาม

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

E-Learning

Go to top