Ở trong ví dụ trên anh sử dụng tên file lưu = tên sheet (Worksheets(i).Name & ".csv") như vậy anh không nhìn thấy sự thay đổi workbook. Anh xem lại file đính kèm em vừa sửa 1 chút về ví dụ của anh sẽ thấy điều em cần diễn giải.
=============================================================
Hiện tại em đang định hướng giải quyết vấn đề em vừa diễn giải bằng các đọc dữ liệu từng trường, từ ô trong File Excel, sau đó ghi nội dung vào file dulieu.txt (theo cấu trúc khi file csv) . Sau đó, đổi tên file dulieu.txt thành dulieu.csv.
Khó khăn đang gặp phải là:
- Dùng cách nào để ngăn cách các trường mà vẫn viết được nội dung trong 1 trường bao gồm cả dấu phẩy (,) (ví dụ : thôgn tin trường Quequan là: "Nguyễn Trãi, Thanh Xuân, Hà Nội").\
- Vấn đề nữa là làm sao ghi và lưu được file dulieu.txt ở trên ở dạng unicode? -> Khi xem file dulieu.csv trên excel thấy rõ được các chữ mã unicode.
Code: Select all
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(fPath & "" & fileName & ".txt", True)
Do While data <> "" And data <> 0 And data <> "0"
sRecord = ""
For j = 1 To 4
data = Worksheets("TenSheet.csv").Cells(i, j).Value
sRecord = sRecord & data & ","
Next
MsgBox sRecord
MyFile.WriteLine sRecord 'Báo lỗi (invalid procedure call or argument
) ở đây khi nội dung từ Excel đưa sang có chứa mã unicode
i = i + 1
Loop
MyFile.Close
Cách khác :
Code: Select all
Open fPath & "" & fileName & ".txt" For Binary As #iFileNo
Do While data <> "" And data <> 0 And data <> "0"
sRecord = ""
For j = 1 To 4
data = Worksheets("TenSheet.csv").Cells(i, j).Value
sRecord = sRecord & data & ","
Next
Print #iFileNo, sRecord ' Báo lỗi Bad file Mode
i = i + 1
Loop
Close #iFileNo
Xin các anh chị tư vấn thêm ạ !