Lưu bảng tính Excel sang dạng .DBF

TH&ĐS

ở công ty, chúng tôi thường lưu bảng tính Excel sang dBASE III (.dbf). Tuy nhiên khi chúng tôi thực hiện thì vài ký tự của một số ô nằm sát lề phải bị mất. Chẳng hạn trong Excel là "Vietnam News" khi lưu sang .DBF trở thành "Vietnam N". Biện pháp duy nhất mà chúng tôi thường dùng là mở rộng cột trong Excel trước khi lưu sang dạng .DBF.

Tuy vậy đây là biện pháp không chắc chắn vì nó đòi hỏi chúng tôi phải đoán trước cột nào có thể bị hỏng để xử lý. Chúng tôi thấy rằng những cột có khả năng gặp sự cố là những cột có chiều rộng tương đối hẹp hơn so với yêu cầu khi Excel dịch sang .DBF. Muốn khắc phục thì phải mở rộng chiều rộng tất cả các cột trước khi xuất sang .DBF. Nhưng chúng tôi bắt buộc hoặc phải đặt lại chiều rộng cho tất cả các cột và nguyên thủy hoặc đóng bảng tính Excel không lưu. Có cách nào tốt hơn không?

    Khi bạn lưu một bảng tính Excel sang tệp dBASE, bất cứ văn bản nào không xuất hiện đầy đủ trong các cột Excel sẽ bị cắt. Tệ hơn, ngay cả những text xuất hiện đầy đủ trong Excel cũng mất khi chuyển qua tệp .DBF mà lý do có lẽ chỉ mình Excel biết.

    Mở rộng cột trước khi xuất là cách chắc chắn nhất. Bạn có thể dùng cặp macro sau đây để tự động thực thi quá trình này. Macro thứ nhất khi ghi chiều rộng của mỗi cột lên bảng tính hiện thời, mở rộng chiều rộng mỗi cột sang 40 ký tự. Macro thứ hai lưu lại chiều rộng cho cột.

Dim Withs (256) As Single

Sub Widen()

For n = 1 to 256

Widths(n)=Column(n).ColumnWith

Next

Column("A:IV").ColumnWith = 40

End Sub

Sub Restore()

Application.ScreenUpdating = False

For n = 1 to 256

Column(n).ColumnWidth = Widths(n)

Next

End Sub

    Câu lệnh Application.Screen Updating trong macro Restore không cần thiết nhưng làm cho macro chạy nhanh hơn.

    Để mở rộng chiều rộng cột hơn 40, hãy thay thế dòng thứ hai từ cuối lên của macro thứ nhất. Nhớ rằng bạn phải tạo cột đủ rộng và bỏ những khoảng trắng nằm bên phải văn bản. Để tự động điều chỉnh cột đơn giản chỉ cần đánh: Column("A:IV").AutoFit

    Gõ hai macro vào cùng mô-đun bảng tính. Nhớ đánh dòng lệnh Dim Widths nằm trước phát biểu Sub thứ nhất. Nhờ vậy, macro Restore luôn luôn sử dụng được công thức mảng Widths.


PcLeHoan 1996 - 2002
Mirror : http://www.pclehoan.com
Mirror : http://www.lehoanpc.net

Mirror : http://www.ktlehoan.com