(Thủ thuật VBA với ký tự số trong Excel) Khi bạn nhập những giá trị số trong Excel và nhấn Enter thì Excel sẽ tự động căn chỉnh các giá trị trên sang bên phải của ô. Trong trường hợp bạn nhập những dãy số mà đằng trước có số 0, ví dụ như số điện thoại, … thì Excel sẽ tự động loại bỏ những số 0 này. Khi đó, người dùng sẽ sử dụng thêm dấu trước khi đánh dãy số để Excel không loại bỏ số 0 đằng trước. Những dãy số như vậy thường được gọi là ký tự số. Một trường hợp khác cũng được coi là các ký tự số đó là khi ta nhập các số xen lẫn giữa các ký tự hoặc các số được ngăn cách bởi các ký tự đặc biệt.
1. Đếm số chữ số trong chuỗi ký tự số
Bạn muốn đếm xem chuỗi trên có bao nhiêu số? Bạn có thể sử dụng hàm VBA dưới đây:
Dim mlen As Long
Dim i As Long
Dim iCount As Long
‘Neu chuoi =0 thi khong xu ly
If Len(str) = 0 Then Exit Function
‘Xoa bo cac ky tu trang o dau va cuoi
str = Trim(str)
‘Dem so ky tu chuoi
mlen = Len(str)
iCount = 0
For i = 1 To mlen
If IsNumeric(Mid(str, i, 1)) Then
iCount = iCount + 1
End If
Next
CountNumber = iCount
End Function
2. Tìm giá trị lớn nhất trong chuỗi ký tự số
Dim x As Variant, M As Double, i As Long, ct As Long
Set R = R.CellS(1, 1)
x = Split(R.Value, “,”)
For i = LBound(x) To UBound(x)
If IsNumeric(x(i)) Then
ct = ct + 1
If x(i) > M Then M = x(i)
End If
Next i
If ct = 0 Then
HighestNumber = CVErr(xlErrNA)
Else
HighestNumber = M
End If
End Function