Page 1 of 1

Save ไฟล์ ด้วย VBA

Posted: Mon Feb 06, 2023 5:12 pm
by babyminds
อยากให้ไฟล์ที่เซฟด้วย VBA เป็นไฟล์ที่ไม่มีสูตร และไม่มีปุ่ม Save

Code: Select all

    ActiveWorkbook.SaveAs Filename:= _
        "D:\Users\saartorn\Desktop\" & Range("f1").Value & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

ไฟล์ที่เซฟมาใหม่มันมีสูตรติดมาด้วย อยากไห้เคลียสูตรเป็น Value และลบปุ่ม Save ออกด้วยครับ
Book1.xlsb
(15.59 KiB) Downloaded 19 times

Re: Save ไฟล์ ด้วย VBA

Posted: Mon Feb 06, 2023 7:58 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub SaveXYZ()
    With Worksheets("Transfer")
        .Shapes("Button 1").Delete
        .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
    End With
    ActiveWorkbook.SaveAs Filename:= _
        "D:\Users\saartorn\Desktop\" & Range("f1").Value & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
การเขียน Code ควรตั้งชื่อคำสั่งให้เป็นชื่ออื่น พยายายามอย่าให้ซ้ำกับคำสั่งของ Excel อย่าตั้งเป็นเช่น Save, Delete, Select อะไรพวกนี้เป็นต้นครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 12:21 pm
by babyminds
snasui wrote: Mon Feb 06, 2023 7:58 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub SaveXYZ()
    With Worksheets("Transfer")
        .Shapes("Button 1").Delete
        .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
    End With
    ActiveWorkbook.SaveAs Filename:= _
        "D:\Users\saartorn\Desktop\" & Range("f1").Value & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
การเขียน Code ควรตั้งชื่อคำสั่งให้เป็นชื่ออื่น พยายายามอย่าให้ซ้ำกับคำสั่งของ Excel อย่าตั้งเป็นเช่น Save, Delete, Select อะไรพวกนี้เป็นต้นครับ
แล้วไฟล์ที่เซฟ ให้เป็นไฟล์ xlsx. เลยได้ไหมครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 1:02 pm
by snasui
:D Excel สามารถ Save ได้หลายรูปแบบ หากต้องการ Save เป็น .xlsx สามารถเปลี่ยน xlOpenXMLWorkbookMacroEnabled เป็น xlOpenXMLWorkbook ดูตารางนี้ประกอบครับ :arrow: XlFileFormat enumeration

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 5:14 pm
by babyminds
snasui wrote: Tue Feb 07, 2023 1:02 pm :D Excel สามารถ Save ได้หลายรูปแบบ หากต้องการ Save เป็น .xlsx สามารถเปลี่ยน xlOpenXMLWorkbookMacroEnabled เป็น xlOpenXMLWorkbook ดูตารางนี้ประกอบครับ :arrow: XlFileFormat enumeration
เพิ่มเติมหน่อยครับ ไฟล์ที่ Save สามารถไห้มันลบ Row ที่ไม่เกิดข้อความด้วยได้ไหมครับ เช่น ตาราง มี 10 แถว แต่คียไปแค่ 5 รายการ ไห้มันลบแถวที่เหลือ และคอลัมน์อ้างอิง 1 คอลัมน์ คือคอลัมน์ E

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 6:04 pm
by snasui
:D สามารถทำได้ ลองเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน ติดตรงไหนค่อยนำไฟล์นั้นมาถามกันต่อครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 6:31 pm
by babyminds
snasui wrote: Tue Feb 07, 2023 6:04 pm :D สามารถทำได้ ลองเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน ติดตรงไหนค่อยนำไฟล์นั้นมาถามกันต่อครับ

Code: Select all

Sub SaveXYZ()
            Rows("4:8").Select
    Selection.Delete Shift:=xlUp
    Columns("E:E").Select
    Selection.Delete Shift:=xlToLeft
    With Worksheets("Transfer")
        .Shapes("Button 1").Delete
        .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
    End With
    ActiveWorkbook.SaveAs Filename:= _
        "D:\Users\saartorn\Desktop\" & Range("f1").Value & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
มัน ERROR อ่ะครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 6:36 pm
by snasui
:D กรุณาแนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 6:41 pm
by babyminds
snasui wrote: Tue Feb 07, 2023 6:36 pm :D กรุณาแนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ
Book1.xlsb
(16.93 KiB) Downloaded 17 times
นี่ครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 6:54 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

With Worksheets("Transfer")
    .Range("b" & .Rows.Count).End(xlUp) _
        .Offset(1, 0).Resize(1000).EntireRow.Delete
    .Range("e1").EntireColumn.Delete
    .Shapes("Button 1").Delete
    .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
End With
ค่าที่ให้ Save เป็น .xlsx ผมตอบไปแล้วตามด้านบน ในไฟล์ที่ส่งมายังไม่ได้ Update ต้อง Update ด้วยครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 7:04 pm
by babyminds
snasui wrote: Tue Feb 07, 2023 6:54 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

With Worksheets("Transfer")
    .Range("b" & .Rows.Count).End(xlUp) _
        .Offset(1, 0).Resize(1000).EntireRow.Delete
    .Range("e1").EntireColumn.Delete
    .Shapes("Button 1").Delete
    .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
End With
ค่าที่ให้ Save เป็น .xlsx ผมตอบไปแล้วตามด้านบน ในไฟล์ที่ส่งมายังไม่ได้ Update ต้อง Update ด้วยครับ

อันนี้ต้องเอา Code ไปต่อรวมกับ Code แรกไหมครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Tue Feb 07, 2023 7:21 pm
by babyminds
snasui wrote: Tue Feb 07, 2023 6:54 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

With Worksheets("Transfer")
    .Range("b" & .Rows.Count).End(xlUp) _
        .Offset(1, 0).Resize(1000).EntireRow.Delete
    .Range("e1").EntireColumn.Delete
    .Shapes("Button 1").Delete
    .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
End With
ค่าที่ให้ Save เป็น .xlsx ผมตอบไปแล้วตามด้านบน ในไฟล์ที่ส่งมายังไม่ได้ Update ต้อง Update ด้วยครับ
ได้แล้วครับ ขอบคุณมากครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Wed Feb 08, 2023 4:56 pm
by babyminds
snasui wrote: Tue Feb 07, 2023 6:54 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

With Worksheets("Transfer")
    .Range("b" & .Rows.Count).End(xlUp) _
        .Offset(1, 0).Resize(1000).EntireRow.Delete
    .Range("e1").EntireColumn.Delete
    .Shapes("Button 1").Delete
    .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
End With
ค่าที่ให้ Save เป็น .xlsx ผมตอบไปแล้วตามด้านบน ในไฟล์ที่ส่งมายังไม่ได้ Update ต้อง Update ด้วยครับ

อาจารย์ครับเพิ่มเติมนิดนึงครับ ถ้าต้องการไห้มัน Delete Row ลงมาแค่ถึง Total ได้ไหมครับ อันนี้ใส่ Total แล้ว Save มันโดนลบไปด้วย
Book1.xlsm
(18.78 KiB) Downloaded 12 times

Re: Save ไฟล์ ด้วย VBA

Posted: Thu Feb 09, 2023 6:07 am
by snasui
:D กรุณาเขียนมาเองก่อน แนบไฟล์ทีได้ปรับปรุง Code นั้นมาแล้วด้วย จะได้ตอบต่อไปจากนั้น ทุกคำถามเกี่ยวกับ VBA กรุณาทำมาเองก่อนทุกครั้งครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Thu Feb 09, 2023 10:15 am
by babyminds
snasui wrote: Thu Feb 09, 2023 6:07 am :D กรุณาเขียนมาเองก่อน แนบไฟล์ทีได้ปรับปรุง Code นั้นมาแล้วด้วย จะได้ตอบต่อไปจากนั้น ทุกคำถามเกี่ยวกับ VBA กรุณาทำมาเองก่อนทุกครั้งครับ

Code: Select all

Sub SaveXYZ()
With Worksheets("Transfer")
    .Range("b" & .Rows.Count).End(xlUp) _
        .Offset(1, 0).Resize(1000).EntireRow.Delete
    .Range("h1").EntireColumn.Delete
    .Shapes("Button 1").Delete
    .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
End With
    ActiveWorkbook.SaveAs Filename:= _
        "D:\Users\saartorn\Desktop\" & Range("f1").Value & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Book1.xlsm
(18.78 KiB) Downloaded 19 times
นี่ครับ

Re: Save ไฟล์ ด้วย VBA

Posted: Thu Feb 09, 2023 4:28 pm
by puriwutpokin
ลองปรับตามนี้ดูครับ

Code: Select all

Sub SaveXYZ()
With Worksheets("Transfer")
Set Rng = ActiveSheet.UsedRange
Col = 2
For i = Rng.Rows.Count To 1 Step -1
If Rng.Cells(i, Col) = "" And Rng.Cells(i, Col - 1) <> "TOTAL" Then
Rng.Cells(i, Col).EntireRow.Delete
End If
Next i
    .Range("h1").EntireColumn.Delete
    .Shapes("Button 1").Delete
    .Range("a1").CurrentRegion.Value = .Range("a1").CurrentRegion.Value
End With
    ActiveWorkbook.SaveAs Filename:= _
        "D:\Users\saartorn\Desktop\" & Range("f1").Value & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub