hàm tách số khỏi chuỗi kí tự,...!

kunkun8887

Member
Hội viên mới
ết hàm bang VB nhé:
1 . ALT + F11 -> Insert -> Module.
2. Dán đoạn code này vào khoảng trống nhé.

Function TS(Mystr As String, Optional Dautp As String) As Double
Dim Kqng, Kqtp, Neg As Double, Kqtam As String
Dim Sotp As Double, Le As Byte
Neg = 1
Le = 0
For i = 1 To Len(Mystr)
tam = Mid(Mystr, i, 1)
Select Case tam
Case 0 To 9
Kqtam = Kqtam & tam
Case "-"
Neg = -1
Case Dautp
Kqng = Kqtam
Le = 1
Mystr = Right(Mystr, Len(Mystr) - i)
Kqtp = TS(Mystr)
Sotp = Kqtp * 10 ^ (-Len(Mystr))
End Select
Next i
Select Case Le
Case 0
TS = Kqtam
Case 1
TS = Kqng + Sotp
End Select
TS = TS * Neg
End Function

3. Chọn Files - > Save as -> save as type - > Micorossoft office excell add-ins ( *.xla) ở dưới cùng.-> lưu name = TS.
4. Tools -> add - Ins... -> TS -> ok.
5. khởi động lại excell.
chỉ cần gõ = TS(ô muốn tách số). là ok...!!!
Hàm này sẽ giúp ích rất nhiều trong làm sổ sách đấy...!!!!:thumbup::hurray::happy3:
 
Ðề: hàm tách số khỏi chuỗi kí tự,...!

Bạn cho hỏi trong VB tách số trong cuỗi ký tự mà bạn hướng dẫn, mình muốn lấy cả ký tự số 0, thì phải làm sao: Ví dụ: Nguyen van a thanh toan cho A so TK 0123456789. KET QUA YEU CAU la: 0123456789

Bạn giúp mình nhé.

Thanhks!


PHP:
Function SplitNumber(strMyString As String) As String
    Dim strResults As String, strTemp As String
    Dim i As Integer
    For i = 1 To Len(strMyString)
        strTemp = Mid(strMyString, i, 1)
        If IsNumeric(strTemp) = True Then
            strResults = strResults & strTemp
        End If
    Next
    SplitNumber = strResults
End Function
 
Ðề: hàm tách số khỏi chuỗi kí tự,...!

Nếu chỉ lấy hoàn toàn là số để tính toán thì sửa lại hàm trên như sau :

PHP:
Function SplitNumber(strMyString As String) As Double
    Dim strResults As String, strTemp As String
    Dim i As Integer
    For i = 1 To Len(strMyString)
        strTemp = Mid(strMyString, i, 1)
        If IsNumeric(strTemp) = True Then
            strResults = strResults & strTemp
        End If
    Next
    SplitNumber = Val(strResults)
End Function

Thân mến
 
Ðề: hàm tách số khỏi chuỗi kí tự,...!

Muốn dùng thêm số lẻ thập phân nữa thì thế này

PHP:
Function SplitNumberDecimal(strMyString As String, Optional DecimalPoint As String) As Double
    Dim strResults As String, strTemp As String
    Dim intResultsIn As Double, intResultsDe As Double
    Dim i As Integer, j As Integer, So As Integer
    For i = 1 To Len(strMyString)
        strTemp = Mid(strMyString, i, 1)
        If IsNumeric(strTemp) = True Or strTemp = DecimalPoint Then
            strResults = strResults & strTemp
        End If
    Next
    For j = 1 To Len(strResults)
        strTemp = Mid(strResults, j, 1)
        If strTemp = DecimalPoint Then
            intResultsIn = Val(Left(strResults, j - 1))
            So = Val(Len(strResults) - j)
            intResultsDe = 10 ^ (-So) * Val(Right(strResults, Len(strResults) - j))
        Else
            intResultsIn = Val(strResults)
            intResultsDe = 0
        End If
    Next
    SplitNumberDecimal = intResultsIn + intResultsDe
End Function

Thân mến
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Kỹ thuật giải trình thanh tra BHXH

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top