Xác định ký hiệu tiền tệ của định dạng (Microsoft Excel)
Jelmer làm việc với nhiều dữ liệu tài chính và thông tin trong trang tính có thể bằng đơn vị tiền tệ của nhiều quốc gia. Cách duy nhất để phân biệt chúng là bằng ký hiệu tiền tệ được sử dụng để định dạng ô. Ví dụ: một ô có thể được định dạng để sử dụng ký hiệu tiền tệ “EUR” hoặc “SEK”. Jelmer tự hỏi liệu có cách nào, trong một công thức, để xác định ký hiệu tiền tệ được sử dụng để định dạng một ô nhất định hay không.
Không có hàm trang tính nội tại nào trong Excel sẽ trả về những gì bạn đang tìm kiếm, vì vậy không thể thực hiện trong công thức. Tuy nhiên, bạn có thể tạo một hàm do người dùng xác định của riêng bạn, hàm này sẽ trả về thông tin mong muốn. Đây là một ví dụ:
Function GetCurrency(rCell As Range) As String Dim sTemp As String Dim sKeep As String Dim sThrowAway As String Dim J As Integer Application.Volatile sKeep = "Not a Numeric Value" If IsNumeric(rCell) Then sThrowAway = "0123456789.,()+- ]" sTemp = rCell.Text sKeep = "" For J = 1 To Len(sTemp) If InStr(sThrowAway, Mid(sTemp, J, 1)) = 0 Then sKeep = sKeep & Mid(sTemp, J, 1) End If Next J End If GetCurrency = sKeep End Function
Để sử dụng hàm, bạn sẽ sử dụng như sau, giả sử bạn muốn ký hiệu tiền tệ cho bất kỳ thứ gì nằm trong ô B7:
=GetCurrency(B7)
Điều này hoạt động vì thuộc tính .Text cho một ô trả về phiên bản được định dạng của bất kỳ thứ gì có trong ô. Giả sử ô chứa giá trị số (hàm kiểm tra giá trị đó), thì văn bản được định dạng sẽ được gán cho biến sTemp. Sau đó, mỗi ký tự trong văn bản đó được so sánh với bất kỳ ký tự nào trong chuỗi sThrowAway. Nếu có sự trùng khớp thì ký tự đó sẽ bị bỏ qua, nếu không thì ký tự đó sẽ được thêm vào biến sKeep.
Đây là những gì được trả về bởi hàm.
Cũng lưu ý rằng nếu ô được đánh giá không chứa giá trị số, thì thông báo lỗi (“Không phải là giá trị số”) sẽ được trả về.
Có một điều cần lưu ý với hàm: Nếu bạn thay đổi định dạng của ô đích, điều đó không kích hoạt macro. Điều này có vẻ là một thiếu sót của chính Excel — nó không kích hoạt tính toán lại của trang tính khi bạn thay đổi định dạng, vì vậy bản thân macro không được kích hoạt.
Tuy nhiên, nó sẽ kích hoạt vào lần tiếp theo bạn thực hiện thay đổi đối với trang tính yêu cầu tính toán lại.
_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 (13787) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.