VBA với ký tự số trong Excel
(Thủ thuật VBA trong Excel)
-Trong Excel khi nhập những giá trị số và ấn Enter, Excel sẽ tự động căn chỉnh các giá trị này sang bên phải của ô. Đối với những giá trị số khi nhập xong, Excel sẽ tự động loại bỏ số 0 đằng trước các dãy số, ví dụ như số điện thoại chẳng hạn. Để Excel không loại bỏ số 0 đằng trước, người sử dụng thường thêm dấu ‘ trước khi đánh dãy số. Đối với những dãy số như vậy người ta thường gọi là ký tự số. Hoặc khi ta nhập các số xen lẫn giữa các ký tự thì đây cũng được coi là các ký tự số, hoặc các số được ngăn cách bởi các ký tự đặc biệt.
Bây giờ bạn muốn đếm xem trong chuỗi này có bao nhiêu số, để làm được việc này bạn 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
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
Nếu các ký tự số trong chuỗi được ngăn cách bởi dấu cách 12 45 66 7888 34 56 39 7 98 25
Thì đoạn Code x = Split(R.Value, “,”) được thay thế bằng x = Split(R.Value, ” “)
Tin học văn phòng