Mình có file bên dưới và có đoạn code viết như thế này để tách lấy chuỗi ký tự trong vùng dữ liệu, mình đã áp dụng và làm ok "nhưng bất cập ở chổ tính toán của đoạn code này nếu dòng dữ liệu lên đến 1000 dòng thì mức độ tính toán của code này khá lâu làm mất rất nhiều thời gian. kính mong các cao nhân trợ giúp đoạn code để giảm bớt thời gian trong vấn đề lấy dữ liệu, xin cảm ơn!
Code VBA 1: lấy đoạn mã 7 ký tự gồm chữ và số
Function HE_FIND7(A As Range, B As Range) As Variant
Dim ai As Range
Dim bi As Range
Dim i As Integer
For Each bi In B
For Each ai In A
'For Each ci In C
For i = 1 To Len(bi.Value)
If Mid(bi.Value, i, 7) = ai.Value Then
HE_FIND7 = ai.Value
' MsgBox "hh"
Exit Function
End If
Next i
'next ci
Next ai
Next bi
End Function
Code VBA 2: lấy đoạn mã 10 ký tự gồm chữ và số
Function HE_FIND10(A As Range, B As Range) As Variant
Dim ai As Range
Dim bi As Range
Dim i As Integer
For Each bi In B
For Each ai In A
'For Each ci In C
For i = 1 To Len(bi.Value)
If Mid(bi.Value, i, 10) = ai.Value Then
HE_FIND10 = ai.Value
' MsgBox "hh"
Exit Function
End If
Next i
'next ci
Next ai
Next bi
End Function
Code VBA 1: lấy đoạn mã 7 ký tự gồm chữ và số
Function HE_FIND7(A As Range, B As Range) As Variant
Dim ai As Range
Dim bi As Range
Dim i As Integer
For Each bi In B
For Each ai In A
'For Each ci In C
For i = 1 To Len(bi.Value)
If Mid(bi.Value, i, 7) = ai.Value Then
HE_FIND7 = ai.Value
' MsgBox "hh"
Exit Function
End If
Next i
'next ci
Next ai
Next bi
End Function
Code VBA 2: lấy đoạn mã 10 ký tự gồm chữ và số
Function HE_FIND10(A As Range, B As Range) As Variant
Dim ai As Range
Dim bi As Range
Dim i As Integer
For Each bi In B
For Each ai In A
'For Each ci In C
For i = 1 To Len(bi.Value)
If Mid(bi.Value, i, 10) = ai.Value Then
HE_FIND10 = ai.Value
' MsgBox "hh"
Exit Function
End If
Next i
'next ci
Next ai
Next bi
End Function