Thứ Hai, 11 tháng 12, 2017

Tự tạo hàm thay đổi ký tự trong 1 chuỗi bằng VBA - Excel

Tự tạo hàm thay đổi ký tự trong 1 chuỗi bằng VBA - Excel nhằm thay đổi hàng loạt ký tự trong chuỗi,  đối với người làm sổ sách kế toán - đặc biệt với người làm nghề "dịch vụ kế toán" có sử dụng bảng tính excel để giản tiện việc thay thế hoặc xóa bớt các ký tự "giống nhau" ví dụ như mã hàng để tránh sai sót chúng ta cần tự động hóa công việc này :

Vào viewcode trong Excel :


Trong khung VBAProject click chuột phải - chọn insert - module 



click chọn module1 :


Sau đó chèn vào đoạn code sau :

Public Function f_doikytu(chuoikytu1 As String, kytucu1 As String, kytumoi1 As String)
solanxuathien = 0
If UCase(kytucu1) = UCase(kytumoi1) Then
GoTo thoat
End If
dodaikytucu1 = Len(kytucu1)
dodaikytumoi1 = Len(kytumoi1)
dodaichuoi1 = Len(chuoikytu1)
If dodaichuoi1 = 0 Or dodaikytucu1 = 0 Then
GoTo thoat
End If

For i = 1 To dodaichuoi1
For m = i To dodaichuoi1
kytucat1 = Mid(chuoikytu1, m, dodaikytucu1)
If UCase(kytucat1) = UCase(kytucu1) Then
solanxuathien = solanxuathien + 1
End If
Next m
Next i

For i = 1 To solanxuathien
dongtext = f_laplai_chuoi(chuoikytu1, kytucu1, kytumoi1)
chuoikytu1 = dongtext
Next

If solanxuathien = 0 Then
dongtext = chuoikytu1
End If
f_doikytu = dongtext
thoat:
End Function
Public Function f_laplai_chuoi(chuoikytu As String, kytucu As String, kytumoi As String)
If UCase(kytucu) = UCase(kytumoi) Then
GoTo thoat
End If
Dim chuoikytumoi As String
dodaikytucu = Len(kytucu)
dodaikytumoi = Len(kytumoi)
dodaichuoi = Len(chuoikytu)
chuoikytumoi = ""

If dodaichuoi = 0 Or dodaikytucu = 0 Then
GoTo thoat
Else
stt = 0

For i = 1 To dodaichuoi
kytucat = Mid(chuoikytu, i, dodaikytucu)
If UCase(kytucat) = UCase(kytucu) Then
stt = stt + 1

If i = 1 Then

chuoikytumoi = kytumoi & Right(chuoikytu, dodaichuoi - dodaikytucu)
GoTo thoat
End If

If i = dodaichuoi Then
chuoikytumoi = Left(chuoikytu, dodaichuoi - dodaikytucu) & kytumoi
GoTo thoat
End If

chuoikytumoi = Left(chuoikytu, i - 1) & kytumoi & Right(chuoikytu, dodaichuoi - dodaikytucu - (i - 1))

End If
Next
End If
If stt = 0 Then
chuoikytumoi = chuoikytu
End If

thoat:
f_laplai_chuoi = chuoikytumoi

End Function






test kiểm tra hàm :
Tạo dữ liệu và công thức như hình minh họa bên dưới


ý nghĩa của hàm này theo ví dụ trên "thay đổi ký tự "-" bằng ký tự "" {Ký tự rỗng} - hay xóa bỏ ký tự "-" trong chuỗi.


Chúc bạn vui !


Related Post

Tự tạo hàm thay đổi ký tự trong 1 chuỗi bằng VBA - Excel
4/ 5
Oleh