Nhờ giúp đỡ trừ 2 dữ liệu dạng text cho nhau (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

lưu tuấn dũng

Thành viên chính thức
Tham gia
27/6/17
Bài viết
64
Được thích
4
Giới tính
Nam
Nhờ các bác giúp đỡ .
Mình có 2 ô dữ liệu A1: lưu tuấn dũng
A2: Lưu tuấn
Các bác giúp đỡ sao cho kết quả ô C1 của em sẽ là A1-A2 ( là phần kí tự không có khi so sánh A1 và A2 )
 
Tham khảo hàm RemoveText của bác @huuthang_bd
Mã:
Function RemoveText(Text As String, rText As Variant) As String
Dim aText As Variant, i As Long
aText = SortLength(rText)
For i = 1 To UBound(aText)
    Text = Replace(Text, aText(i), vbTab)
Next
RemoveText = Replace(Text, vbTab, "")
End Function
Private Function SortLength(ByVal rText As Variant)
Dim n As Long, k As Long, i As Long, j As Long, aResult() As Variant, item As Variant, tmp As String
rText = rText
If IsArray(rText) Then
    For Each item In rText
        n = n + 1
        ReDim Preserve aResult(1 To n)
        aResult(n) = item
    Next
    For i = 1 To n - 1
        k = i
        For j = i + 1 To n
            If Len(aResult(j)) > Len(aResult(k)) Then k = j
        Next
        tmp = aResult(i): aResult(i) = aResult(k): aResult(k) = tmp
    Next
Else
    ReDim aResult(1 To 1)
    aResult(1) = rText
End If
SortLength = aResult
End Function
 
Nhờ các bác giúp đỡ .
Mình có 2 ô dữ liệu A1: lưu tuấn dũng
A2: Lưu tuấn
Các bác giúp đỡ sao cho kết quả ô C1 của em sẽ là A1-A2 ( là phần kí tự không có khi so sánh A1 và A2 )
So sánh cả từ hay từng ký tự?
1. So sánh cả từ
(lưu tuấn dũng) - (Lư tuấn) = lưu dũng (do lưu <> lư)
2. So sánh từng ký tự
(lưu tuấn dũng) - (Lư tuấn) = dũg (chỉ d, ư, g, còn các ký tự khác của A1 đều có trong A2)
 
Function Chuoi1TruChuoi2(c1 as string, c2 as string) as string
' trả về các ký tự trong c1 và không có trong c2
' phương pháp brute force - không tối ưu gì cả
For i = 1 To Len(c1)
c = Mid(c1, 1, 1)
If (InStr(Chuoi1TruChuoi2, c) + InStr(c2, c)) = 0 Then Chuoi1TruChuoi2 = Chuoi1TruChuoi2 & c
Next i
End Function
 
Function Chuoi1TruChuoi2(c1 as string, c2 as string) as string
' trả về các ký tự trong c1 và không có trong c2
' phương pháp brute force - không tối ưu gì cả
For i = 1 To Len(c1)
c = Mid(c1, 1, 1)
If (InStr(Chuoi1TruChuoi2, c) + InStr(c2, c)) = 0 Then Chuoi1TruChuoi2 = Chuoi1TruChuoi2 & c
Next i
End Function
bạn có thể ghi rõ hàm lúc mình viết được không . thật sự mình không biết gí về VBA , chỉ biết tạo module thôi ^^
Bài đã được tự động gộp:

Function Chuoi1TruChuoi2(c1 as string, c2 as string) as string
' trả về các ký tự trong c1 và không có trong c2
' phương pháp brute force - không tối ưu gì cả
For i = 1 To Len(c1)
c = Mid(c1, 1, 1)
If (InStr(Chuoi1TruChuoi2, c) + InStr(c2, c)) = 0 Then Chuoi1TruChuoi2 = Chuoi1TruChuoi2 & c
Next i
End Function
Nhờ bác giúp đỡ vào file luôn cho em ạ. Vị trí = vị trí nhập - vị trí xuất ah
Em cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom