EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
ActiveWorkbook.SaveAs Filename:= _
"D:\Users\saartorn\Desktop\" & Range("f1").Value & ".xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
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
แล้วไฟล์ที่เซฟ ให้เป็นไฟล์ xlsx. เลยได้ไหมครับsnasui wrote: Mon Feb 06, 2023 7:58 pmตัวอย่างการปรับ Code ครับ
การเขียน Code ควรตั้งชื่อคำสั่งให้เป็นชื่ออื่น พยายายามอย่าให้ซ้ำกับคำสั่งของ Excel อย่าตั้งเป็นเช่น Save, Delete, Select อะไรพวกนี้เป็นต้นครับ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
xlOpenXMLWorkbookMacroEnabled
เป็น xlOpenXMLWorkbook
ดูตารางนี้ประกอบครับ เพิ่มเติมหน่อยครับ ไฟล์ที่ Save สามารถไห้มันลบ Row ที่ไม่เกิดข้อความด้วยได้ไหมครับ เช่น ตาราง มี 10 แถว แต่คียไปแค่ 5 รายการ ไห้มันลบแถวที่เหลือ และคอลัมน์อ้างอิง 1 คอลัมน์ คือคอลัมน์ Esnasui wrote: Tue Feb 07, 2023 1:02 pmExcel สามารถ Save ได้หลายรูปแบบ หากต้องการ Save เป็น .xlsx สามารถเปลี่ยน
xlOpenXMLWorkbookMacroEnabled
เป็นxlOpenXMLWorkbook
ดูตารางนี้ประกอบครับXlFileFormat enumeration
snasui wrote: Tue Feb 07, 2023 6:04 pmสามารถทำได้ ลองเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 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
นี่ครับ
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
snasui wrote: Tue Feb 07, 2023 6:54 pmตัวอย่างการปรับ Code ครับ
ค่าที่ให้ Save เป็น .xlsx ผมตอบไปแล้วตามด้านบน ในไฟล์ที่ส่งมายังไม่ได้ Update ต้อง Update ด้วยครับ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
ได้แล้วครับ ขอบคุณมากครับsnasui wrote: Tue Feb 07, 2023 6:54 pmตัวอย่างการปรับ Code ครับ
ค่าที่ให้ Save เป็น .xlsx ผมตอบไปแล้วตามด้านบน ในไฟล์ที่ส่งมายังไม่ได้ Update ต้อง Update ด้วยครับ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
snasui wrote: Tue Feb 07, 2023 6:54 pmตัวอย่างการปรับ Code ครับ
ค่าที่ให้ Save เป็น .xlsx ผมตอบไปแล้วตามด้านบน ในไฟล์ที่ส่งมายังไม่ได้ Update ต้อง Update ด้วยครับ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
snasui wrote: Thu Feb 09, 2023 6:07 amกรุณาเขียนมาเองก่อน แนบไฟล์ทีได้ปรับปรุง 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
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