Làm cách nào để mở tệp CSV được phân cách bằng dấu chấm phẩy bằng VBA trong Excel 2000?Mở tệp CSV phân cách bằng dấu chấm phẩy
dữ liệu mẫu
An ID;TEST20090222
A Name;Firstname Surname
A Date;11.05.2000
Country:;SomeCountryName
Currency;EUR
CostA;
CostB;
CostC;
Part1;10;20;30
Part2;;;;
Part3;34;56;87
Mã
Trong Excel 11.8231.8221 SP3 với VBA 1025/06/05, tôi có thể mở một dấu chấm phẩy tập tin được phân định với mã VBA sau:
Workbooks.OpenText filename:=myFilename, _
DataType:=xlDelimited, Semicolon:=True, Local:=True
Tuy nhiên, khi cùng mã được chạy trong Excel 9.0.8961 SP1 với VBA 1025/06/05, tôi nhận được lỗi sau:
Compile error: Named argument not found
Đó là --Tôi think-- vì Excel 2000 không biết tên đối số "Địa phương".
Vì vậy, tôi đã xóa phần "Địa phương: = Đúng". Nhưng vấn đề sau đó là toàn bộ một dòng từ tệp CSV được ghi vào một ô thay vì được chia thành các phần phân cách bằng dấu chấm phẩy riêng biệt.
Tôi đã tìm kiếm trên Internet một giải pháp, nhưng không tìm thấy bất kỳ điều gì hữu ích và súc tích.
Bất kỳ ý tưởng nào?
[Cập nhật 2009/02/17]
Tôi cố gắng gợi ý từ user lc với macro recorder. Tuy nhiên, kết quả rất khó hiểu.
Khi tôi mở tệp CSV bằng menu Tệp-> Mở ... và sau đó chọn tệp CSV, dữ liệu được phân cách bằng dấu chấm phẩy được phân tích cú pháp chính xác. Và mã được ghi lại đơn giản như:
Workbooks.Open filename:= _
"D:\testdata\Example 01 CSV\input.csv"
Nhưng khi tôi sử dụng mã VBA đó trong macro của mình, mỗi dòng lại kết thúc trong một ô một lần nữa.
Theo đề xuất từ user barrowc, tôi cũng đã thay đổi cài đặt "Tùy chọn ngôn ngữ và khu vực" của Windows từ "tiếng Đức (Thụy Sĩ)" sang "tiếng Anh (Hoa Kỳ)". Ngay cả sau khi khởi động lại Excel, không có gì thay đổi, cùng một vấn đề.
Tôi tự hỏi tại sao nó hoạt động trên user Remou của hệ thống. Bạn có cài đặt ngôn ngữ và khu vực nào?
Bạn có thể đăng một vài dòng tệp CSV để chúng tôi có thể xem nó không? –
Thêm thông tin của bạn vào câu hỏi, xin vui lòng, không ở đây trong các ý kiến. – isherwood
@isherwood: Xong. – Lernkurve