snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
babyminds
Member
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#1
Post
by babyminds » Mon Feb 06, 2023 5:12 pm
อยากให้ไฟล์ที่เซฟด้วย 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.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Mon Feb 06, 2023 7:58 pm
ตัวอย่างการปรับ 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
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#3
Post
by babyminds » Tue Feb 07, 2023 12:21 pm
snasui wrote: Mon Feb 06, 2023 7:58 pm
ตัวอย่างการปรับ 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. เลยได้ไหมครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Tue Feb 07, 2023 1:02 pm
Excel สามารถ Save ได้หลายรูปแบบ หากต้องการ Save เป็น .xlsx สามารถเปลี่ยน
xlOpenXMLWorkbookMacroEnabled เป็น
xlOpenXMLWorkbook ดูตารางนี้ประกอบครับ
XlFileFormat enumeration
babyminds
Member
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#5
Post
by babyminds » Tue Feb 07, 2023 5:14 pm
snasui wrote: Tue Feb 07, 2023 1:02 pm
Excel สามารถ Save ได้หลายรูปแบบ หากต้องการ Save เป็น .xlsx สามารถเปลี่ยน
xlOpenXMLWorkbookMacroEnabled เป็น
xlOpenXMLWorkbook ดูตารางนี้ประกอบครับ
XlFileFormat enumeration
เพิ่มเติมหน่อยครับ ไฟล์ที่ Save สามารถไห้มันลบ Row ที่ไม่เกิดข้อความด้วยได้ไหมครับ เช่น ตาราง มี 10 แถว แต่คียไปแค่ 5 รายการ ไห้มันลบแถวที่เหลือ และคอลัมน์อ้างอิง 1 คอลัมน์ คือคอลัมน์ E
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Tue Feb 07, 2023 6:04 pm
สามารถทำได้ ลองเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน ติดตรงไหนค่อยนำไฟล์นั้นมาถามกันต่อครับ
babyminds
Member
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#7
Post
by babyminds » Tue Feb 07, 2023 6:31 pm
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
มัน ERROR อ่ะครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Tue Feb 07, 2023 6:36 pm
กรุณาแนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ
babyminds
Member
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#9
Post
by babyminds » Tue Feb 07, 2023 6:41 pm
snasui wrote: Tue Feb 07, 2023 6:36 pm
กรุณาแนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ
Book1.xlsb
นี่ครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Tue Feb 07, 2023 6:54 pm
ตัวอย่างการปรับ 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
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#11
Post
by babyminds » Tue Feb 07, 2023 7:04 pm
snasui wrote: Tue Feb 07, 2023 6:54 pm
ตัวอย่างการปรับ 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
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#12
Post
by babyminds » Tue Feb 07, 2023 7:21 pm
snasui wrote: Tue Feb 07, 2023 6:54 pm
ตัวอย่างการปรับ 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
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#13
Post
by babyminds » Wed Feb 08, 2023 4:56 pm
snasui wrote: Tue Feb 07, 2023 6:54 pm
ตัวอย่างการปรับ 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.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Thu Feb 09, 2023 6:07 am
กรุณาเขียนมาเองก่อน แนบไฟล์ทีได้ปรับปรุง Code นั้นมาแล้วด้วย จะได้ตอบต่อไปจากนั้น ทุกคำถามเกี่ยวกับ VBA กรุณาทำมาเองก่อนทุกครั้งครับ
babyminds
Member
Posts: 78 Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365
#15
Post
by babyminds » Thu Feb 09, 2023 10:15 am
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
Book1.xlsm
นี่ครับ
You do not have the required permissions to view the files attached to this post.
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#16
Post
by puriwutpokin » Thu Feb 09, 2023 4:28 pm
ลองปรับตามนี้ดูครับ
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