:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

Save ไฟล์ ด้วย VBA

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

Save ไฟล์ ด้วย VBA

#1

Post 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
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31154
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#2

Post 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 อะไรพวกนี้เป็นต้นครับ
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

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

#3

Post 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. เลยได้ไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31154
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#4

Post by snasui »

:D Excel สามารถ Save ได้หลายรูปแบบ หากต้องการ Save เป็น .xlsx สามารถเปลี่ยน xlOpenXMLWorkbookMacroEnabled เป็น xlOpenXMLWorkbook ดูตารางนี้ประกอบครับ :arrow: XlFileFormat enumeration
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

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

#5

Post 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
User avatar
snasui
Site Admin
Site Admin
Posts: 31154
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#6

Post by snasui »

:D สามารถทำได้ ลองเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน ติดตรงไหนค่อยนำไฟล์นั้นมาถามกันต่อครับ
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

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

#7

Post 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 อ่ะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31154
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#8

Post by snasui »

:D กรุณาแนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

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

#9

Post by babyminds »

snasui wrote: Tue Feb 07, 2023 6:36 pm :D กรุณาแนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ
Book1.xlsb
นี่ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31154
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#10

Post 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 ด้วยครับ
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

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

#11

Post 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 แรกไหมครับ
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

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

#12

Post 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 ด้วยครับ
ได้แล้วครับ ขอบคุณมากครับ
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

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

#13

Post 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
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31154
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#14

Post by snasui »

:D กรุณาเขียนมาเองก่อน แนบไฟล์ทีได้ปรับปรุง Code นั้นมาแล้วด้วย จะได้ตอบต่อไปจากนั้น ทุกคำถามเกี่ยวกับ VBA กรุณาทำมาเองก่อนทุกครั้งครับ
babyminds
Member
Member
Posts: 78
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

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

#15

Post 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
นี่ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

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

#16

Post 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
:shock: :roll: :D
Post Reply