Page 1 of 1

ปัญหาจากการใช้โค๊ด VBA save as ไฟล์ ใน excel 2007

Posted: Sun Apr 08, 2012 3:37 pm
by sutham
เมื่อผมได้ลองใช้โค๊ด save as ไฟล์ โดยการสร้างปุ่ม save ก็ทำงานได้แต่ พอปิดหน้าต่าง excel แล้วเปิดไฟล์ที่บันทึกได้ กลับมีกล่องโต้ตอบขึ้นมาทุกครั้ง จะแก้ไขปัญหานี้ได้อย่างไรครับ


ขอบคุณครับ

Re: ปัญหาจากการใช้โค๊ด VBA save as ไฟล์ ใน excel 2007

Posted: Sun Apr 08, 2012 4:50 pm
by snasui
:D ลองกำหนด FileFormat เข้าไปด้วยตามด้านล่างครับ

Code: Select all

Sub save_as()
    Dim file_name As Variant
        file_name = Application.GetSaveAsFilename( _
        fileFilter:="Excel 97-2003 Workbook (*.xls), *.xls, All Files (*.*), *.*")
        If file_name = False Then Exit Sub
        If LCase$(Right$(file_name, 4)) <> ".xls" Then
            file_name = file_name & ".xls"
        End If
        ActiveWorkbook.SaveAs Filename:=file_name, FileFormat:=xlExcel8
End Sub

Re: ปัญหาจากการใช้โค๊ด VBA save as ไฟล์ ใน excel 2007

Posted: Mon Apr 09, 2012 8:20 am
by songsug
ใน Excel 2007 การจะเขียนไฟล์ที่มี Macro อยู่นั้น คุณต้องทำการ Save Type ของ File เป็น Excel Macro - Enabled Workbook ก่อนครับไฟล์ถึงจะสมบูรณ์ ไม่เช่นนั้นทุกครั้งที่เปิดไฟล์ขึ้นมา คุณต้องไปเปิดการใช้งานทุกๆครั้งครับ หรือถ้าไฟล์นั้นคุณเปลี่ยน TYPE เรียบร้อยแล้ว ก็แสดงว่าคุณยังไมได้ตั้งค่าความปลอดภัยของ macro ใน Excel 2007 ของคุณ

Re: ปัญหาจากการใช้โค๊ด VBA save as ไฟล์ ใน excel 2007

Posted: Mon Apr 09, 2012 8:27 am
by snasui
songsug wrote:ใน Excel 2007 การจะเขียนไฟล์ที่มี Macro อยู่นั้น คุณต้องทำการ Save Type ของ File เป็น Excel Macro - Enabled Workbook ก่อนครับไฟล์ถึงจะสมบูรณ์ ไม่เช่นนั้นทุกครั้งที่เปิดไฟล์ขึ้นมา
:D มาช่วยเสริมครับ กรณีต้องการ Save เป็น 2007 ขึ้นไป หากไม่ Save เป็นนามสกุล .xlsm จะไม่ติด Code VBA หรือ Macro ไปด้วยครับ เมื่อไม่มี Macro จะไม่มีการฟ้องให้ Enable Macro ครับ :P