Phạm vi xuất khẩu sang CSV (Tệp văn bản được phân tách) - Ví dụ về mã VBA

Lưu phạm vi vào tệp CSV

Giải pháp # 670 về cách xuất một dải ô sang tệp văn bản được phân tách.

Đây là một giải pháp thay thế tiện dụng cho việc sử dụng cách mặc định của Excel để lưu trang tính dưới dạng tệp Văn bản hoặc tệp được phân tách bằng CSV bằng cách chọn “lưu dưới dạng” khi:

1. Bạn sử dụng một mẫu và chỉ muốn xuất dữ liệu không bao gồm tiêu đề và các nội dung khác

2. Tương tự, bạn có thể chỉ muốn xuất một phần của tập dữ liệu

3. Bạn muốn lưu tệp bằng dấu phân cách tùy chỉnh có thể là duy nhất cho ứng dụng của bạn.

Nếu bạn có nhu cầu làm 1,2 hoặc 3 một chức năng như sau có thể giúp ích cho bạn. Nó chấp nhận một phạm vi để xuất, vị trí để lưu tệp và dấu phân cách mà bạn muốn dữ liệu của mình được phân tách, sau đó lưu dữ liệu của bạn như đã chỉ định.

Đây là cách gọi hàm ExportRange:

1234567891011 Sub CallExport ()'ExportRange (dải ô, ở đâu, dấu phân cách)Gọi ExportRange (Sheet1.Range ("A1: C20"), _"C: mark.txt", ",")Kết thúc Sub

Đầu tiên, bạn cho hàm biết phạm vi mà bạn muốn xuất, sau đó xuất nó ở đâu, ngoài phạm vi sử dụng. Bạn cũng sẽ cần chức năng ExportRange, nó đây:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 Hàm ExportRange (WhatRange As Range, _Where As String, Delimiter As String) As StringKiểm tra Dim HoldRow As Long 'cho biến hàng mớiHoldRow = WhatRange.RowDim c As Range 'lặp qua biến phạm viĐối với mỗi c Trong WhatRangeIf HoldRow c.Row Then'thêm dấu ngắt dòng và xóa dấu phân đoạn bổ sungExportRange = Left (ExportRange, Len (ExportRange) - 1) _& vbCrLf & c.Text & DelimiterHoldRow = c.RowKhácExportRange = ExportRange & c.Text & DelimiterKết thúc nếuTiếp theo c'Cắt bớt dấu phân cách thừaExportRange = Left (ExportRange, Len (ExportRange) - 1)'Hủy tệp nếu nó đã tồn tạiNếu Len (Dir (Ở đâu))> 0 ThìGiết ở đâuKết thúc nếuMở Where For Append as # 1 'ghi tệp mớiPrint # 1, ExportRangeĐóng # 1Chức năng kết thúc
wave wave wave wave wave