Thay thế và chuyển đổi trong Macro (Microsoft Excel)
Saskia đã gặp sự cố khi chuyển đổi thông tin, dưới sự kiểm soát của macro và nó vẫn có thể sử dụng được trong Excel. Khi cô ấy nhận được một trang tính hiển thị các số được định dạng bằng dấu thập phân, cô ấy sẽ cần chuyển đổi các giá trị để chúng sử dụng dấu phẩy thập phân, phù hợp với cách hiển thị số ở Hà Lan. Cô ấy sẽ tìm và thay thế, và mọi thứ sẽ hoạt động tốt. Tuy nhiên, khi cô ấy ghi lại một macro đã thực hiện việc tìm và thay thế, các ô kết quả được coi là văn bản thay vì dưới dạng giá trị số.
Lý do cho hành vi này là Excel VBA “nói” tiếng Mỹ và một số hành động được thực hiện bằng cách sử dụng macro được ghi lại không hoạt động như mong đợi do thực tế đó. Vì American Excel mong đợi dấu phân tách thập phân là một dấu chấm, việc diễn giải một “số” trong VBA bằng một dấu phân tách khác (chẳng hạn như dấu phẩy) sẽ khiến Excel coi giá trị là văn bản.
Cách giải quyết không phải là sử dụng tìm và thay thế mà sử dụng một thủ thuật khác. Hãy xem xét macro ngắn sau:
Sub ConvertNumbers() Dim oConRange As Range Set oConRange = ActiveSheet.UsedRange.Cells.SpecialCells(xlConstants) oConRange.Value = oConRange.Value End Sub
Macro này xác định một phạm vi bao gồm tất cả các ô chứa hằng số. Sau đó, nó đặt giá trị của mỗi ô trong phạm vi bằng chính nó. Trong quá trình thực hiện việc này, Excel sẽ đánh giá lại nội dung của từng ô và chuyển nó thành giá trị số thích hợp. Nói cách khác, các số có chứa dấu phẩy thập phân được chuyển đổi thành số có chứa dấu phẩy thập phân.
Có những cách khác bạn có thể xử lý các ô bằng cách sử dụng macro, nhưng quy trình trên dường như hoạt động tốt nhất và nhanh nhất.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (2291) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: