Bỏ qua nội dung chính

Làm cách nào để lưu dữ liệu trang tính dưới dạng tệp csv có / không có dấu ngoặc kép?

Tác giả: Tiểu Dương Sửa đổi lần cuối: 2020-12-11

Khi bạn xuất hoặc lưu một dải dữ liệu từ Excel sang tệp csv, thông thường, dữ liệu csv không có dấu ngoặc kép, nhưng nếu các giá trị ô của bạn được phân tách bằng dấu phẩy hoặc dấu ngắt dòng, thì dữ liệu csv đã xuất sẽ có dấu ngoặc kép dấu ngoặc kép. Và bài viết này, tôi sẽ nói về cách lưu dữ liệu trang tính dưới dạng tệp csv có hoặc không có dấu ngoặc kép khi bạn cần.

Lưu dữ liệu trang tính dưới dạng tệp csv với dấu ngoặc kép

Lưu dữ liệu trang tính dưới dạng tệp csv mà không có dấu ngoặc kép


mũi tên màu xanh bong bóng bên phải Lưu dữ liệu trang tính dưới dạng tệp csv với dấu ngoặc kép

Để lưu dữ liệu bình thường dưới dạng tệp csv với dấu ngoặc kép, mã VBA sau có thể giúp bạn, vui lòng làm như sau:

1. Giữ ALT + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun Cửa sổ.

Mã VBA: Lưu dữ liệu trang tính dưới dạng tệp csv với dấu ngoặc kép:

Sub CSVFile()
'updateby Extendoffice
    Dim xRg As Range
    Dim xRow As Range
    Dim xCell As Range
    Dim xStr As String
    Dim xSep As String
    Dim xTxt As String
    Dim xName As Variant
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
    Set xRg = Application.InputBox("Please select the data range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    xName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")
    xSep = Application.International(xlListSeparator)
    Open xName For Output As #1
    For Each xRow In xRg.Rows
        xStr = ""
        For Each xCell In xRow.Cells
            xStr = xStr & """" & xCell.Value & """" & xSep
        Next
        While Right(xStr, 1) = xSep
            xStr = Left(xStr, Len(xStr) - 1)
        Wend
        Print #1, xStr
    Next
    Close #1
    If Err = 0 Then MsgBox "The file has saved to: " & xName, vbInformation, "Kutools for Excel"
End Sub

3. Và sau đó nhấn F5 để chạy mã này và một hộp nhắc xuất hiện để nhắc bạn chọn phạm vi dữ liệu mà bạn muốn lưu dưới dạng tệp csv với dấu ngoặc kép, xem ảnh chụp màn hình:

doc lưu csv với dấu ngoặc kép 1

4. Sau đó nhấn vào OK và một Save As cửa sổ xuất hiện, vui lòng chỉ định tên tệp và vị trí, sau đó nhấp vào Lưu nút, xem ảnh chụp màn hình:

doc lưu csv với dấu ngoặc kép 2

5. Và một Kutools cho ExcelHộp nhắc nhở của hiện ra để nhắc bạn rằng tệp csv mới đã được lưu vào vị trí bạn chỉ định, xem ảnh chụp màn hình:

doc lưu csv với dấu ngoặc kép 3

6. Nhấp chuột OK để đóng hộp thoại và bây giờ, khi bạn mở tệp csv mới của mình, tất cả dữ liệu được bao quanh bởi dấu ngoặc kép như ảnh chụp màn hình sau:

doc lưu csv với dấu ngoặc kép 4


mũi tên màu xanh bong bóng bên phải Lưu dữ liệu trang tính dưới dạng tệp csv mà không có dấu ngoặc kép

Nếu dữ liệu của bạn được phân tách bằng dấu phẩy, ngắt dòng trong một ô thì khi bạn lưu dữ liệu dưới dạng tệp csv, dữ liệu sẽ được bao quanh bởi dấu ngoặc kép như hình sau:

doc lưu csv với dấu ngoặc kép 5

Để lưu dữ liệu dưới dạng tệp csv mà không có dấu ngoặc kép, vui lòng áp dụng mã VBA sau.

1. Giữ ALT + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun Cửa sổ.

Mã VBA: Lưu dữ liệu trang tính dưới dạng tệp csv mà không có dấu ngoặc kép:

Sub Export()
'updateby Extendoffice
    Dim xRg As Range
    Dim xRow As Range
    Dim xCell As Range
    Dim xStr As String
    Dim xTxt As String
    Dim xName As Variant
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
    Set xRg = Application.InputBox("Please select data range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    xName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")
    Open xName For Output As #1
    For Each xRow In xRg.Rows
        xStr = ""
        For Each xCell In xRow.Cells
            xStr = xStr & xCell.Value & Chr(9)
        Next
        While Right(xStr, 1) = Chr(9)
            xStr = Left(xStr, Len(xStr) - 1)
        Wend
        Print #1, xStr
    Next
    Close #1
    If Err = 0 Then MsgBox "The file has saved to: " & xName, vbInformation, "Kutools for Excel"
End Sub

3. Sau đó nhấn F5 để chạy mã này và một hộp nhắc xuất hiện để nhắc bạn chọn phạm vi dữ liệu mà bạn muốn lưu dưới dạng csv mà không có dấu ngoặc kép, xem ảnh chụp màn hình:

doc lưu csv với dấu ngoặc kép 6

4. Nhấp chuột OK và một Save As cửa sổ được hiển thị, vui lòng chỉ định tên tệp và vị trí cho tệp csv mới của bạn, xem ảnh chụp màn hình:

doc lưu csv với dấu ngoặc kép 7

5. Và sau đó nhấp vào Lưu nút, một Kutools cho ExcelHộp lời nhắc của hiện ra để cho bạn biết tệp csv mới đã được lưu vào vị trí bạn chỉ định, xem ảnh chụp màn hình:

doc lưu csv với dấu ngoặc kép 8

6. Nhấp chuột OK để đóng hộp thoại và khi bạn mở tệp csv mới của mình, dấu ngoặc kép bao quanh dữ liệu sẽ bị xóa như hình minh họa sau:

doc lưu csv với dấu ngoặc kép 9

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
Comments (7)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Super simple and straight forward! Saved the day for me. Much appreciated.
Rated 5 out of 5
This comment was minimized by the moderator on the site
Caso deseje apenas salva todo o Excel em csv *sem aspas* conforme eu, segue sugestão:

Sub Exportar_CSV()

Application.ScreenUpdating = False

'Seleciona a guia Extract do Excel depois a célula A1
Sheets("Extract").Select
Range("A1").Select

'Iniciar exportação txt via Print com texto exato mostrado em tela sem erro das aspas

Dim Path As String
Dim FileNumber As Integer
Dim LR As Integer
Dim LC As Integer

Dim k As Integer
Dim i As Integer

LR = Worksheets("Extract").Cells(Rows.Count, 1).End(xlUp).Row
LC = Worksheets("Extract").Cells(1, Columns.Count).End(xlToLeft).Column

Path = ThisWorkbook.Path & "\Extract " & Format(Now(), "ddmmyyyy-hhmmss") & ".csv"
FileNumber = FreeFile

Open Path For Output As FileNumber

For k = 1 To LR

For i = 1 To LC

If i <> LC Then
Print #FileNumber, Cells(k, i),
Else
Print #FileNumber, Cells(k, i)
End If

Next i

Next k

Close FileNumber


' Caso deseja abrir o notepad imediatamente para conferir o txt gerado só retirar a linha comentada abaixo:


'Shell "notepad.exe " & Path, vbNormalFocus



Application.ScreenUpdating = True

MsgBox "Extract*.txt salvo na pasta onde abriu este Excel!"

End Sub
This comment was minimized by the moderator on the site
Sub Exportar_TXT()



Application.ScreenUpdating = False



'Seleciona a guia Extract do Excel depois a célula A1
Sheets("Extract").Select
Range("A1").Select

'Iniciar exportação txt via Print com texto exato mostrado em tela sem erro das aspas

Dim Path As String
Dim FileNumber As Integer
Dim LR As Integer
Dim LC As Integer

Dim k As Integer
Dim i As Integer

LR = Worksheets("Extract").Cells(Rows.Count, 1).End(xlUp).Row
LC = Worksheets("Extract").Cells(1, Columns.Count).End(xlToLeft).Column

Path = ThisWorkbook.Path & "\Extract " & Format(Now(), "ddmmyyyy-hhmmss") & ".csv"
FileNumber = FreeFile

Open Path For Output As FileNumber

For k = 1 To LR

For i = 1 To LC

If i <> LC Then
Print #FileNumber, Cells(k, i),
Else
Print #FileNumber, Cells(k, i)
End If

Next i

Next k

Close FileNumber


' Caso deseja abrir o notepad imediatamente para conferir o txt gerado só retirar a linha comentada abaixo:


'Shell "notepad.exe " & Path, vbNormalFocus



Application.ScreenUpdating = True

MsgBox "Extract*.txt salvo na pasta onde abriu este Excel!"

End Sub
This comment was minimized by the moderator on the site
Thank you so much for this. I've been trying to figure out how to put double quotes around my file for 3 days!
This comment was minimized by the moderator on the site
not unicode
This comment was minimized by the moderator on the site
Sério eu te amo rsrsrsr
Me ajudou demais, muito obrigada!
This comment was minimized by the moderator on the site
Olá!
Muito obrigado! O conteúdo me ajudou muito. Precisava gerar um arquivo txt eliminando as aspas duplas no início e no final de cada linha e não estava conseguindo resolver. Agora consegui.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations