Excel sang csv mà không có dấu ngoặc kép

Xin chào, tôi đã sử dụng thành công tập lệnh này để xuất dữ liệu từ một trang tính sang csv [. txt].

Mã.

Sub CSVExport[]


    Dim var1 As String
    Dim var2 As String
    Dim var3 As String
    Dim var4 As String
    
    'Find the last row that contains data
    With Worksheets["Sheet1"]
        lLastRow = .Cells[.Rows.Count, "A"].End[xlUp].row
    End With
    
    'Setting the name and the path of text file based on workbook path
    sFName = ThisWorkbook.Path & "csvoutput.txt"
        
    'Get an unused file number
    intFNumber = FreeFile
    
    'Create a new file [or overwrite an existing one]
    Open sFName For Output As [URL=//www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=intFNumber]#intFNumber[/URL] 
        
    For lCounter = 1 To lLastRow


     'Read specific data from the worksheet
        With Worksheets["Sheet1"]
            var1 = .Cells[lCounter, 1]
            var2 = .Cells[lCounter, 2]
            var3 = .Cells[lCounter, 3]
            var4 = .Cells[lCounter, 4]
        End With
        
        'Write selected data to text file
        Write [URL=//www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=intFNumber]#intFNumber[/URL] , var1, var2, var3, var4
        
    'Continue looping until the last row
    Next lCounter
    
    'Close the text file
    Close [URL=//www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=intFNumber]#intFNumber[/URL] 
   
End Sub


However, this script inserts double quotes around each "item" - I need to export the file without double quotes.. Is there any way to adapt my above script to do this or will I have to look for a new solution?

If you can point me in the right direction, I'd be most grateful

Thanks

 

RobbieC nói

Hãy thử điều này.

Mã VBA.

Sub CSVExport[]


On Error Resume Next


Application.ScreenUpdating = False


SheetName = ActiveSheet.Name
Sheets["Sheet1"].Activate 'replace with correct sheet


    Dim field1 As String
    Dim field2 As String
    Dim field3 As String
    Dim field4 As String
   
    Dim sFName As String
    Dim intFNumber As Integer
    Dim lCounter As Long
    Dim lLastRow As Long
   
    With Worksheets["Sheet1"] 'replace with correct sheet
        lLastRow = .Cells[.Rows.count, "A"].End[xlUp].Row
    End With
   
    sFName = ThisWorkbook.Path & "csvoutput.txt"
    intFNumber = FreeFile
    Open sFName For Output As #intFNumber
       
    For lCounter = 1 To lLastRow
        With Worksheets["Sheet1"] 'replace with correct sheet
            field1 = .Cells[lCounter, 1]
            field2 = .Cells[lCounter, 2]
            field3 = .Cells[lCounter, 3]
            field4 = .Cells[lCounter, 4]
        End With
        Write #intFNumber, field1, field2, field3, field4
    Next lCounter
    Close #intFNumber


    Sheets[SheetName].Activate


    Application.ScreenUpdating = True
 
End Sub

Bấm để mở rộng

Xin chào, cảm ơn vì mã. Nó chạy không có lỗi nhưng không thể tìm nạp csv hoặc excel bằng dấu ngoặc kép

Mục lục ẩn

Tải sách bài tập thực hành

3 cách nhanh nhất để lưu Excel dưới dạng CSV với dấu ngoặc kép

1. Sử dụng Định dạng Tùy chỉnh để Lưu Excel dưới dạng CSV với Dấu ngoặc kép

2. Sử dụng Windows PowerShell

3. Áp dụng mã VBA cho tệp CSV có dấu ngoặc kép

Những điều cần ghi nhớ

Phần kết luận

Những bài viết liên quan

Tải sách bài tập thực hành

Các bạn có thể tải sách bài tập thực hành ở nút download bên dưới

Lưu CSV với Dấu ngoặc kép. xlsm

3 cách nhanh nhất để lưu Excel dưới dạng CSV với dấu ngoặc kép

1. Sử dụng Định dạng Tùy chỉnh để Lưu Excel dưới dạng CSV với Dấu ngoặc kép

Hãy tưởng tượng bạn có tập dữ liệu sau. Bạn muốn lưu nó dưới dạng tệp CSV với các giá trị ô được đặt trong dấu ngoặc kép. Sau đó làm theo các bước dưới đây

📌 Các bước

  • Đầu tiên, chọn toàn bộ phạm vi [A1. B6] của tập dữ liệu
  • Sau đó, nhấn CTRL+1 để mở cửa sổ Định dạng ô
  • Tiếp theo, chọn Định dạng tùy chỉnh từ tab Số
  • Sau đó, nhập \“#\”;\“@\” vào trường Loại
  • Sau đó, nhấn OK

  • Tiếp theo, chọn File >> Save As. Sau đó duyệt vị trí mong muốn để lưu tệp
  • Sau đó, nhập tên tệp. Bây giờ, hãy chọn CSV [được phân cách bằng dấu phẩy] [*. csv] làm loại tệp bằng mũi tên thả xuống
  • Sau đó, nhấp vào nút Lưu

  • Tiếp theo, đi đến vị trí mong muốn đó. Sau đó mở tệp CSV bằng trình soạn thảo văn bản [Notepad, v.v.]

  • Sau đó, bạn sẽ thấy kết quả sau có chứa thêm một số dấu ngoặc kép

  • Bây giờ, nhấn CTRL+H để mở cửa sổ Thay thế. Nhập một trích dẫn kép vào trường Tìm gì mà không có bất kỳ dấu cách nào ở giữa chúng. Giữ trống trường Thay thế bằng và chọn Thay thế Tất cả
  • Cuối cùng, bạn sẽ nhận được kết quả mong muốn như sau

Đọc thêm. Cách áp dụng Macro để chuyển đổi nhiều tệp Excel thành tệp CSV

2. Sử dụng Windows PowerShell

Ngoài ra, trước tiên bạn có thể lưu tệp CSV mà không có dấu ngoặc kép. Sau đó, bạn có thể thêm dấu ngoặc kép bằng Windows Powershell. Thực hiện theo các bước dưới đây để có thể làm điều đó

📌 Các bước

  • Trước tiên, hãy chuyển đến trang tính mà bạn muốn lưu dưới dạng tệp CSV
  • Tiếp theo, chọn Tệp >> Lưu dưới dạng như trong phương pháp trước đó
  • Sau đó, duyệt vị trí mong muốn cho tệp. Tiếp theo, nhập tên cho tệp
  • Sau đó, chọn CSV [Phân cách bằng dấu phẩy] [*. csv] làm loại tệp bằng mũi tên thả xuống
  • Sau đó, nhấp vào nút Lưu

  • Sau đó, bạn sẽ nhận được kết quả như sau

  • Bây giờ, giữ phím SHIFT và nhấp chuột phải vào bất kỳ khoảng trống nào trong vị trí của tệp CSV mà không có dấu ngoặc kép
  • Sau đó, nhấp vào Mở cửa sổ PowerShell tại đây

  • Bây giờ, sao chép lệnh sau. Bạn cần thay đổi tên tệp dựa trên tệp của mình

import-csv Sales1.csv | export-csv Sales2.csv  -NoTypeInformation -Encoding UTF8

  • Sau đó, dán mã đã sao chép vào cửa sổ PowerShell và nhấn Enter

  • Sau đó, bạn sẽ nhận được kết quả mong muốn như trong hình bên dưới

Đọc thêm. Cách chuyển đổi tệp Excel thành tệp văn bản có phân cách bằng dấu phẩy [3 phương pháp]

bài đọc tương tự

  • Macro để chuyển đổi tệp văn bản Excel sang tệp văn bản được phân tách bằng ống [3 phương pháp]
  • Cách chuyển đổi nhiều tệp Excel sang CSV [3 cách phù hợp]

3. Áp dụng mã VBA cho tệp CSV có dấu ngoặc kép

Bạn cũng có thể sử dụng Excel VBA để có được kết quả tương tự. Thực hiện theo các bước dưới đây để làm điều đó

📌 Các bước

  • Đầu tiên, nhấn ALT+F11 để mở cửa sổ VBA
  • Sau đó chọn Insert >> Module như hình sau. Điều này sẽ tạo ra một mô-đun mới

  • Bây giờ, sao chép mã bên dưới, sử dụng nút sao chép
Sub ExcelToCSV[]
Dim rng, row, cell As Range
Dim dqt, dlim, text As String
Dim file As Variant
On Error Resume Next
If ActiveWindow.RangeSelection.Count > 1 Then
text = ActiveWindow.RangeSelection.AddressLocal
Else
text = ActiveSheet.UsedRange.AddressLocal
End If
Set rng = Application.InputBox["Please select the data range:", "ExcelDemy.Com", text, , , , , 8]
If rng Is Nothing Then Exit Sub
file = Application.GetSaveAsFilename["", "CSV File [*.csv], *.csv"]
dlim = Application.International[xlListSeparator]
Open file For Output As #1
For Each row In rng.rows
dqt = ""
For Each cell In row.Cells
dqt = dqt & """" & cell.Value & """" & dlim
Next
While Right[dqt, 1] = dlim
dqt = Left[dqt, Len[dqt] - 1]
Wend
Print #1, dqt
Next
Close #1
If Err = 0 Then MsgBox "The CSV file has been saved to: " & file, vbInformation, "ExcelDemy.Com"
End Sub
  • Sau đó, dán mã đã sao chép vào mô-đun như hình bên dưới

  • Tiếp theo nhấn F5 để chạy code. Điều này sẽ yêu cầu phạm vi mong muốn của bạn. Bây giờ, bạn có thể quay lại trang tính và chọn phạm vi. Sau đó, nhấn OK. Thao tác này sẽ đưa bạn trực tiếp đến cửa sổ Lưu dưới dạng

  • Bây giờ, duyệt vị trí của tệp và nhập tên. Sau đó, nhấp vào Lưu

  • Sau đó excel sẽ hiện thông báo như sau

  • Cuối cùng, bạn có thể kiểm tra các kết quả sau

🔎 Giải thích về Mã VBA

Sub ExcelToCSV[]
Chúng tôi sẽ viết mã bên trong thủ tục chủ đề này.

Làm mờ rng, hàng, ô dưới dạng phạm vi
Làm mờ dqt, dlim, văn bản dưới dạng chuỗi
Làm mờ tệp dưới dạng biến thể
Declaring necessary variables.

Khi Lỗi Tiếp tục Tiếp theo
Bỏ qua mọi lỗi.

Nếu ActiveWindow. Phạm viLựa chọn. Đếm > 1 Sau đó
text = ActiveWindow. Phạm viLựa chọn. AddressLocal
Khác
text = ActiveSheet. Phạm vi đã sử dụng. AddressLocal
End If
Tự động phát hiện dữ liệu để chọn.

Đặt rng = Ứng dụng. InputBox[“Vui lòng chọn vùng dữ liệu. ”, “ExcelDemy. Com”, văn bản, , , , , 8]
Yêu cầu phạm vi dữ liệu.

If rng Is nothing Then Exit Sub
Thoát hoạt động khi không có đầu vào.

file = Ứng dụng. GetSaveAsFilename[“”, “Tệp CSV [*. csv], *. csv”]
Đặt định dạng của tệp mới.

dlim = Ứng dụng. International[xlListSeparator]
Chỉ định dấu phẩy làm dấu phân cách.

Mở tệp cho đầu ra dưới dạng số 1
Tạo tệp mới.

Cho mỗi hàng Trong rng. hàng
dqt = “”
Cho từng ô Trong hàng. Ô
dqt = dqt & “””” & ô. Giá trị & “””” & dlim
Tiếp theo
While Right[dqt, 1] = dlim
dqt = Left[dqt .
Wend
Print #1, dqt
Next
Close #1
Wraps the cell values with double quotes and populates the new file with them.

If Err = 0 Then MsgBox “Tệp CSV đã được lưu vào. ” & tệp, vbInformation, “ExcelDemy. Com”
Xác nhận lưu tệp CSV.

Đọc thêm. Cách tự động chuyển đổi tệp Excel sang CSV [3 phương pháp đơn giản]

Những điều cần ghi nhớ

  • Bạn cần cung cấp đường dẫn tệp thích hợp trong lệnh PowerShell trong trường hợp bạn mở nó từ các vị trí khác
  • Bạn cần thay đổi tên tệp dựa trên tệp của mình

Phần kết luận

Bây giờ bạn đã biết cách chuyển đổi tệp excel để lưu dưới dạng tệp CSV với dấu ngoặc kép. Vui lòng cho chúng tôi biết nếu bài viết này đã cung cấp cho bạn giải pháp mong muốn. Bạn cũng có thể sử dụng phần bình luận bên dưới để biết thêm các truy vấn hoặc đề xuất. Hãy truy cập blog ExcelDemy của chúng tôi để tìm hiểu thêm về excel. Ở lại với chúng tôi và tiếp tục học hỏi

Làm cách nào để 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?

Đây là hành vi tiêu chuẩn [và tương tự như cách tệp CSV được lưu]. .
Tìm một chuỗi không có trong tệp của bạn [Tôi đã sử dụng xxx ]
Trước khi xuất, Tìm & Thay thế Tất cả dấu ngoặc kép " bằng xxx
Xuất tệp của bạn sang txt hoặc csv
Mở tệp txt và Tìm & Thay thế Tất cả các trích dẫn không có gì
Tìm & Thay thế Tất cả xxx bằng dấu ngoặc kép

Tại sao CSV của tôi có dấu ngoặc kép?

Tệp CSV sử dụng dấu ngoặc kép để phân định các giá trị trường có khoảng trắng , vì vậy giá trị như ông già Noel được lưu dưới dạng “Ông già Noel . Nếu một giá trị trường chứa dấu ngoặc kép, thì dấu ngoặc kép sẽ được nhân đôi để trình phân tích cú pháp có thể cho biết sự khác biệt.

Chủ Đề