Page 1 of 1

สอบถามปัญหา CodeVB การบันทึกไฟล์

Posted: Thu Mar 31, 2022 10:39 am
by tigerwit
จากไฟล์ที่แนบมา
จะทำการคัดลอกข้อมูลที่ชีท ExportGrade แล้วไปเซฟเป็นไฟล์ใหม่ (.xlsx)
จาก Code

Code: Select all

Sub export01()
    Dim FileSaveName As String
    If MsgBox("คุณต้องการส่งออกผลการเรียน ใช่หรือไม่ ?", 36, "ยืนยันการส่งออกผลการเรียน") = 6 Then
    Worksheets("ExportGrade").Range("C2:P50").Copy
    Workbooks.Add
    Range("A1").Select
    Selection.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
   Call AutoFit
    FileSaveName = Application.GetSaveAsFilename(fileFilter:="Excel File (*.xlsx), *.xlsx")
    If FileSaveName = "False" Then
    MsgBox "คุณไม่ได้บันทึกไฟล์ส่งออก โปรดดำเนินการใหม่อีกครั้ง"
    Application.DisplayAlerts = False
    ActiveWindow.Close
    Application.DisplayAlerts = True
    Exit Sub
    End If
            If FileSaveName <> "" Then
                ActiveWorkbook.SaveAs Filename:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
        False, CreateBackup:=False
                MsgBox "ไฟล์ส่งออกถูกบันทึกใน " & FileSaveName
            End If
    Application.DisplayAlerts = False
    ActiveWindow.Close
    Range("A7").Select
    Application.DisplayAlerts = True
    End If
End Sub
1. ผมมีปัญหาว่าทุกครั้งที่ส่งออกไฟล์ไปถึงจะตั้งชื่อไฟล์อะไรก็ตาม จะกลายเป็นว่าจะได้ไฟล์ชื่อ 56.xlsx เสมอ
ไม่ทราบว่า บรรทัดไหนของ Code ที่สั่งให้ตั้งชื่อไฟล์เป็น 56.xlsx และจะแก้ไขอย่างไร

2.กรณีบันทึกแล้วมีไฟล์ชื่อเดียวกันอยู่ หากตอบ (ใช่) เพื่อบันทึกซ้ำจะไม่มีปัญหา แต่ถ้าหากตอบ (ไม่ใช่) หรือ (ยกเลิก) จะมีปัญหา
กรณีนี้จะแก้ไขอย่างไร

Re: สอบถามปัญหา CodeVB การบันทึกไฟล์

Posted: Thu Mar 31, 2022 11:42 am
by puriwutpokin
ตามนี้ครับข้อหนึ่ง
ส่วนข้อสอง ใช้ On Error Resume Next เพื่อไม่ให้เกิด ดีบัก แบบนี้ได้ไหมครับ

Code: Select all

            
'Other code...
            If FileSaveName <> "" Then
                ActiveWorkbook.SaveAs Filename:=FileSaveName, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
        False, CreateBackup:=False
 'Other code...      

Re: สอบถามปัญหา CodeVB การบันทึกไฟล์

Posted: Fri Apr 01, 2022 9:37 am
by tigerwit
ขอบคุณครับผม
ขอถามต่ออีกนิดครับ
ถ้าเราจะซ่อนขั้นตอนการทำงานต่าง ๆ ตั้งแต่ คัดลอกข้อมูล สร้างไฟล์ใหม่ วางข้อมูลที่คัดลอก จะถึงตอนที่กำลังจะบันทึกไฟล์ใหม่ไม่ให้เห็นชีท ที่กำลังจะบันทึก
ต้องเพิ่ม Code อย่างไรครับ

Re: สอบถามปัญหา CodeVB การบันทึกไฟล์

Posted: Fri Apr 01, 2022 9:58 am
by puriwutpokin
ครอบ โค้ดด้วยคำสั่งนี้ครับ

Code: Select all

'Sub xxx()
Application.ScreenUpdating = False 
'Code..
Application.ScreenUpdating = True
'End Sub