Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA ghi một phạm vi Excel vào tệp văn bản CSV (giá trị được phân tách bằng dấu phẩy).

Tình huống:

Write Data to Text File in Excel VBA

Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau:

  1. Đầu tiên, chúng ta khai báo một biến tên là myFile kiểu String, một đối tượng gọi là rng kiểu Range, một biến gọi là cellValue kiểu Variant, một biến gọi là i kiểu Integer, và một biến j kiểu Integer. Chúng tôi sử dụng biến Variant ở đây vì biến Variant có thể chứa bất kỳ loại giá trị nào.

Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
  1. Chúng ta cần chỉ định đường dẫn đầy đủ và tên tệp của tệp.

myFile = Application.DefaultFilePath & "\sales.csv"

Lưu ý: thuộc tính DefaultFilePath trả về đường dẫn tệp mặc định. Để thay đổi vị trí tệp mặc định, trên tab Tệp, bấm vào Tùy chọn, Lưu.

  1. Chúng tôi khởi tạo đối tượng phạm vi rng với phạm vi đã chọn.

Set rng = Selection
  1. Thêm dòng mã sau:

Open myFile For Output As #1

Lưu ý: câu lệnh này cho phép tệp được ghi vào. Chúng ta có thể coi tệp là số 1 trong phần còn lại của mã. Nếu tệp đã tồn tại, nó sẽ bị xóa và một tệp mới có cùng tên sẽ được tạo.

  1. Bắt đầu một vòng lặp kép.

For i = 1 To rng.Rows.Count

For j = 1 To rng.Columns.Count

Lưu ý: rng.Rows.Count trả về số hàng (17 trong ví dụ này) và rng.Columns.Count trả về số cột (4 trong ví dụ này).

  1. Excel VBA ghi giá trị của một ô vào biến cellValue.

cellValue = rng.Cells(i, j).Value
  1. Thêm các dòng mã sau để ghi giá trị của cellValue vào tệp văn bản.

If j = rng.Columns.Count Then

Write #1, cellValue

Else

Write #1, cellValue,

End If

Giải thích: do câu lệnh If Then Else, Excel VBA chỉ bắt đầu một dòng mới (Write # 1, cellValue) khi j bằng số cột (giá trị cuối cùng trong một hàng). Để phân tách các giá trị bằng dấu phẩy, hãy sử dụng Write # 1, cellValue, (bằng dấu phẩy).

  1. Đừng quên đóng cả hai vòng lặp.

Next j

Next i
  1. Đóng tệp.

Close #1
  1. Chọn dữ liệu và nhấp vào nút lệnh trên trang tính.

Kết quả:

Write Data to Text File Result