ไปยังเนื้อหาหลัก

วิธีบันทึกส่งออกหลายแผ่น / ทั้งหมดเพื่อแยกไฟล์ csv หรือไฟล์ข้อความใน Excel

เมื่อใช้ Excel คุณสามารถบันทึกเวิร์กชีตเป็นไฟล์ csv หรือข้อความได้ด้วยตนเองโดยใช้ฟังก์ชันบันทึกเป็น อย่างไรก็ตาม หากต้องการแปลงแผ่นงานหลายแผ่นหรือทั้งหมดในสมุดงานเป็นไฟล์ csv หรือไฟล์ข้อความที่แยกจากกัน คุณจะทำอย่างไร? ในบทความนี้ เราจะแสดงวิธีการบันทึกหรือแปลงแผ่นงานหลายแผ่นหรือทั้งหมดเป็นไฟล์ csv หรือไฟล์ข้อความที่แยกจากกัน

บันทึกส่งออกหรือแปลงแผ่นงานทั้งหมดเป็นไฟล์ csv หรือไฟล์ข้อความด้วยรหัส VBA
บันทึกส่งออกหรือแปลงแผ่นงานหลายแผ่นเป็น csv หรือไฟล์ข้อความด้วย Kutools for Excel


บันทึกส่งออกหรือแปลงแผ่นงานทั้งหมดเป็นไฟล์ csv หรือไฟล์ข้อความด้วยรหัส VBA

ด้วยรหัส VBA ด้านล่างคุณสามารถบันทึกแผ่นงานทั้งหมดในสมุดงานไปยังไฟล์ csv หรือไฟล์ข้อความที่แยกกันได้ กรุณาดำเนินการดังนี้

ส่งออกหรือแปลงแผ่นงานทั้งหมดเป็นไฟล์ csv

1 กด อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ แอปพลิเคชัน Microsoft Visual Basic หน้าต่าง

2 ใน แอปพลิเคชัน Microsoft Visual Basic หน้าต่างคลิก สิ่งที่ใส่เข้าไป > โมดูล. จากนั้นคัดลอกและวางรหัสต่อไปนี้ลงในไฟล์ โมดูล หน้าต่าง

รหัส VBA: ส่งออกแผ่นงานทั้งหมดไปยังไฟล์ csv ที่แยกจากกัน

Sub ExportSheetsToCSV()
	Dim xWs As Worksheet
	Dim xcsvFile As String
	For Each xWs In Application.ActiveWorkbook.Worksheets
		xWs.Copy
		xcsvFile = CurDir & "\" & xWs.Name & ".csv"
		Application.ActiveWorkbook.SaveAs Filename: = xcsvFile, _
		FileFormat: = xlCSV, CreateBackup: = False
		Application.ActiveWorkbook.Saved = True
		Application.ActiveWorkbook.Close
	Next
End Sub

3 กด F5 กุญแจสำคัญในการเรียกใช้รหัส คุณจะเห็นไฟล์ csv ที่ส่งออกทั้งหมดอยู่บนไฟล์ เอกสาร โฟลเดอร์ ดูภาพหน้าจอ:

ส่งออกหรือแปลงแผ่นงานทั้งหมดเป็นไฟล์ข้อความ

รหัสต่อไปนี้สามารถช่วยคุณในการส่งออกหรือแปลงแผ่นงานทั้งหมดในสมุดงานเป็นไฟล์ข้อความที่แยกจากกัน

รหัส VBA: ส่งออกแผ่นงานทั้งหมดไปยังไฟล์ข้อความที่แยกจากกัน

Sub ExportSheetsToText()
	Dim xWs As Worksheet
	Dim xTextFile As String
	For Each xWs In Application.ActiveWorkbook.Worksheets
		xWs.Copy
		xTextFile = CurDir & "\" & xWs.Name & ".txt"
		Application.ActiveWorkbook.SaveAs Filename: = xTextFile, FileFormat: = xlText
		Application.ActiveWorkbook.Saved = True
		Application.ActiveWorkbook.Close
	Next
End Sub

ไฟล์ข้อความที่ส่งออกยังอยู่ในไฟล์ เอกสาร โฟลเดอร์ ดูภาพหน้าจอ:


บันทึกส่งออกหรือแปลงแผ่นงานหลายแผ่นเป็น csv หรือไฟล์ข้อความด้วย Kutools for Excel

Yคุณสามารถส่งออกหรือแปลงแผ่นงานหลายแผ่นหรือทั้งหมดเป็นไฟล์ csv ไฟล์ข้อความหรือรูปแบบไฟล์ xls ใน Excel ได้อย่างรวดเร็วด้วย แยกสมุดงาน ประโยชน์ของ Kutools สำหรับ Excel.

ก่อนที่จะใช้ Kutools สำหรับ Excelโปรด ดาวน์โหลดและติดตั้งในตอนแรก.

1 คลิก Kutools พลัส > สมุดงาน > แยกสมุดงาน. ดูภาพหน้าจอ:

2 ใน แยกสมุดงาน กล่องโต้ตอบ:

  • 1). หากคุณต้องการแปลงแผ่นงานทั้งหมดเป็นไฟล์ csv หรือข้อความเพียงแค่เก็บชื่อแผ่นงานทั้งหมดไว้ในไฟล์ ชื่อแผ่นงาน กล่อง; หากคุณต้องการแปลงแผ่นงานหลายแผ่นให้ตรวจสอบแผ่นงานต่อไปและยกเลิกการเลือกแผ่นงานอื่น ๆ ที่คุณไม่ต้องการแปลง
  • 2) ใน Options ตรวจสอบ บันทึกเป็นชนิด จากนั้นเลือก ข้อความ Unicode (*. txt) or CSV (แมคอินทอช) (*. csv) จากรายการแบบหล่นลง
  • 3). คลิก แยก ปุ่ม

3 ใน เรียกดูโฟลเดอร์ กล่องโต้ตอบระบุโฟลเดอร์ที่จะบันทึกไฟล์ที่ส่งออกจากนั้นคลิกไฟล์ OK ปุ่ม

ตอนนี้แผ่นงานทั้งหมดหรือแผ่นงานที่ระบุจะถูกแปลงเป็นไฟล์ csv หรือไฟล์ข้อความที่แยกจากกันและค้นหาในโฟลเดอร์ตามที่คุณระบุไว้ด้านบน

  หากคุณต้องการทดลองใช้ยูทิลิตีนี้ฟรี (30 วัน) กรุณาคลิกเพื่อดาวน์โหลดแล้วไปใช้การดำเนินการตามขั้นตอนข้างต้น


บันทึกส่งออกหรือแปลงแผ่นงานหลายแผ่นเป็น csv หรือไฟล์ข้อความด้วย Kutools for Excel

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (38)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi, thanks for the VBA, i have a problem with the VBA for export to text file, as the VBA run the txt file got generated, but the inside data is not exactly like the excel data, for example my data include character quotation mark, and the exported data became double quotation mark, plus the beginning and the ending of the text file there are quotation mark, here's the excel and the txt file that i meant :
excel : Start Chrome https://xxx/tap_inbox_sparepart_act.asp?proses_id=202300102027800&act=akseptoraksep"&"alasan=ok
text file : "Start Chrome https://xxx/tap_inbox_sparepart_act.asp?proses_id=202300102027800&act=akseptoraksep""&""alasan=ok"

Thanks in advanced :)
This comment was minimized by the moderator on the site
Hi Nicky,

I tested this code, but could not reproduce the problem in my case. And the file you provided didn't open. Can you upload your file using the "upload attachment" link below?
This comment was minimized by the moderator on the site
The VBA code works nicely. Equivalent C# code in a VSTO workbook project emits empty .csv files.


void SaveSomeWorksheetsAsCsvFiles() {
    string[] worksheetNames = new[] { "Sheet1", "Sheet2", "Sheet3" };
    foreach (var worksheet in worksheetNames.Select(_ => Globals.ThisWorkbook.Sheets[_] as Excel.Worksheet)) {
        worksheet.Copy();
        string fullName = @"C:\Users\....\Staging" + $".{worksheet.Name}.csv";
        this.SaveAs(fullName, XlFileFormat.xlCSV);
        Application.ActiveWorkbook.Saved = true;
        Application.ActiveWorkbook.Close();
    }
}
This comment was minimized by the moderator on the site
Hi Calvin,
We do not support programming languages other than VBA. Sorry for the inconvenience.
This comment was minimized by the moderator on the site
Hi, thanks for the great code (Export all sheets to separated Text files), using it a lot. Just ran into a workbook where it won't work, debugger says line xWs.Copy is problem, popup says method copy of a workbook failed. Is there any restrictions concerning a worksheet name or something similar, like no merged cells etc..?

Thanks for a reply :)
This comment was minimized by the moderator on the site
HI BI,
Does your worksheet contain a pivot table? Can you provide us with your data for tesing? If you don't mind, upload your sample file here.
This comment was minimized by the moderator on the site
Hi, thanks for the great code it is awesome(Export all sheets to separated Text files)! Used it on many occasions but ran into a file where it won't work, debugger says runtime error 1004 and that method copy of a worksheet failed and marks line xWs.Copy. Is there any rule concerning a worksheet name that would not allow code to run?
This comment was minimized by the moderator on the site
Thanks! I used this to save all the sheets of my .xlsx file into differents .xlsx
Sub ExportSheetsToXLSX()
Dim xWs As Worksheet
Dim xcsvFile As String
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xlsxFile = CurDir & "\" & xWs.Name & ".xlsx"
Application.ActiveWorkbook.SaveAs Filename:=xlsxFile, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Next
End Sub
This comment was minimized by the moderator on the site
how would I change the code to have it save in a different file format such as an xlsx? or ASCII.
This comment was minimized by the moderator on the site
So, this is great! BUT, what if I need to split a workbook into .csv but for PC, not MAC? If anyone has a way of doing it, please help me out. I will be very grateful.
This comment was minimized by the moderator on the site
Hi,
The first VBA code in this post can do you a favor.
This comment was minimized by the moderator on the site
Is there a way to use this code to export only a certain range to a .csv file of each sheet in a book?
This comment was minimized by the moderator on the site
Hi,
The VBA code in this article may do you a favor: https://www.extendoffice.com/documents/excel/2897-excel-export-range-to-csv.html
This comment was minimized by the moderator on the site
Hello,
thank you so much for a great macro, it works like a charm! But I have a question, what if I would like to save this macro (CSV version) on PERSONAL.xlsb as to make it available on any excel instance?

When I try, CurDir takes the PERSONAL directory, instead of the active worksheet one...

Thank you for any help!
This comment was minimized by the moderator on the site
Hi Mirko,
Method in this article can do you a favor: https://trumpexcel.com/personal-macro-workbook/.
This comment was minimized by the moderator on the site
If you just want to convert multiple sheets, keep checking them and going to uncheck other sheets you don’t want to convert
sir for thuis step do you have macro
This comment was minimized by the moderator on the site
Good day,
Can't help with VBA code for this. Why not try the Split Workbook utility we provide in the post? It will save your time and you will love it.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations