ไฟล์ Excel เวอร์ชันเก่าๆ เช่น Excel 2003 ที่มีการฝังสคริป macro หรือ VBA เข้าไป เมื่อนำไฟล์เวอร์ชันเก่า มารันในเวอร์ชันใหม่ มักจะเกิดปัญหารันไม่ได้ บางครั้งก็รันได้ บางครั้งก็รันไม่ได้ ก่อนจะไปดูวิธีแก้ไข มาดูสาเหตุกันก่อน ว่าเกิดจากอะไร
สำหรับเวอร์ชันเก่าๆ เช่น 2003 โปรแกรม Excel รองรับคอลัมน์ ได้เพียง 256 คอลัมน์ ส่วนเวอร์ชันใหม่ๆ รองรับได้เพิ่มขึ้นมาก จึงทำให้เกิดปัญหาขึ้นเมื่อ ไฟล์เวอร์ชันเก่า ถึงแม้จะรันด้วยโปรแกรมเวอร์ชันใหม่ ก็จะยังไม่ได้มีจำนวนคอลัมน์ที่เพิ่มขึ้นตาม ทำให้ บางคำสั่งของ VBA ที่ต้องใช้คอลัมน์ จำนวนมากๆ เพื่อทำการคำนวณ ไม่สามารถทำได้ จึงทำให้รัน VBA ไม่ได้นั่นเอง
แนวทางการแก้คือ เปิดไฟล์ขึ้นมา แล้วทำการบันทึกใหม่ เป็นแบบ Compatibality เลือกเป็น 2010 สำหรับไฟล์ที่ฝัง VBA อาจจะเลือกบันทึกเป็น .xlsa หรือ .xlsm เป็นต้น
จากนั้นลองทำการรัน Macro ใหม่ จะพบว่ายัง ใหม่ จะพบว่ายัง Error อยู่ ต้องทำการ Debug หรือแก้โค้ด VBA ใหม่ แก้ชื่อไฟล์ในโค้ด VBA ให้นามสกุลตรงกับไฟล์ที่เราแก้ไขใหม่ด้วย เช่นในโค้ด VBA ระบุนามสกุลไฟล์เดิมเป็น .xls เราก็แก้โดยการเติม m เข้าไป เป็น .xlsm เป็นต้น เพียงเท่านี้ก็จะสามารถรันแล้วครับ