ตัวอย่างนี้ต้องการให้รหัสทำงานคล้ายกับตัวอย่างแรก เพียงแต่คราวนี้ให้เปลี่ยนชื่อแฟ้มแทนที่จะเป็นชื่อชีท

ขั้นที่ 1 : ขอให้ลองเขียนรหัสเองขึ้นมา โดยเลียนแบบตัวอย่างแรก

Sub RenameWorkbook()
    ActiveWorkbook.Name = Range("A1")
End Sub

เมื่อสั่ง Run จะพบว่ารหัสชุดนี้ไม่ทำงาน โดยมีคำเตือนว่า Compile error ในขั้นนี้ไม่ต้องสนใจว่า Compile error คืออะไร เพียงขอให้สังเกตว่า รหัสไม่ทำงาน แสดงว่าต้องมีอะไรที่ผิดพลาด และถ้าสังเกตต่อให้ดีจะพบว่าเมื่อคลิก OK ออกจากคำเตือน Compile error แล้ว VBE จะเลือกคำว่า .Name ไว้ เป็นอาการที่ชี้ให้เราเห็นว่า ส่วนที่ผิดพลาดน่าจะเป็นส่วนของคำว่า .Name นี่เอง

image009

ทุกครั้งที่รหัสไม่ทำงาน ให้คลิกปุ่ม Reset ซึ่งเป็นปุ่มสี่เหลี่ยมบนเมนูก่อน มิฉะนั้นจะทำอย่างอื่นต่อไม่ได้เลย

ขั้นที่ 2 : ใช้ Recorder บันทึกการสั่ง File > Save as เป็นชื่อแฟ้มใหม่ สมมติให้ใช้ชื่อว่า MyMonth.xls จะได้รหัส VBA :

ActiveWorkbook.SaveAs Filename:= _
"C:\MyMonth.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False _
, CreateBackup:=False

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

ActiveWorkbook.SaveAs Filename:="MyMonth.xls"

ขั้นที่ 4 : ย้อนกลับไปแก้รหัสในขั้นที่ 1 แล้วจะพบว่ารหัสทำงานได้ตามต้องการ

Sub RenameWorkbook()
    ActiveWorkbook.SaveAs Filename: = Range("A1")
End Sub

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

E-Learning

Go to top