Chào Các Anh Chị
Nhờ các Anh hiệu chỉnh code dò tìm lấy kết quả cột M nhưng vẫn giữ nguyên định dạng ban đầu.
Cột M có giữ liệu là '1/24 thì kết quả vẫn giữ nguyên là '1/24.
Các Anh chị xem file đính kèm.
Dic.Add Tem, [COLOR=#ff0000]Arr(I, 5)[/COLOR]
Dic.Add Tem, [COLOR=#ff0000]IIf(VarType(Arr(I, 5)) = 8, "'", "") & Arr(I, 5)[/COLOR]
Cám ơn Anh nhiềuSửa đoạn này:
Thành:Mã:Dic.Add Tem, [COLOR=#ff0000]Arr(I, 5)[/COLOR]
Mã:Dic.Add Tem, [COLOR=#ff0000]IIf(VarType(Arr(I, 5)) = 8, "'", "") & Arr(I, 5)[/COLOR]
Private Sub CommandButton1_Click()
Dim Arr(), dArr(), Dic, I As Long, J As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
Arr = .Range(.[I5], .[I65500].End(xlUp)).Resize(, 6).Value2
End With
For I = 1 To UBound(Arr, 1)
Tem = Arr(I, 1) & "#" & Arr(I, 6)
If Not IsEmpty(Tem) And Not Dic.exists(Tem) Then
Dic.Add Tem, IIf(VarType(Arr(I, 5)) = 8, "'", "") & Arr(I, 5)
End If
Next I
With Sheet1
dArr = .Range(.[B5], .[B65500].End(xlUp)).Resize(, 6).Value
End With
For I = 1 To UBound(dArr, 1)
Tem = dArr(I, 1) & "#" & dArr(I, 6)
If Dic.exists(Tem) Then
If dArr(I, 6) = "A" Then
dArr(I, 5) = Dic.item(Tem)
End If
End If
Next I
With Sheet1
.[B5].Resize(UBound(dArr, 1), 6) = dArr
End With
Set Dic = Nothing
End Sub
Chào AnhSửa đoạn này:
Thành:Mã:Dic.Add Tem, [COLOR=#ff0000]Arr(I, 5)[/COLOR]
Mã:Dic.Add Tem, [COLOR=#ff0000]IIf(VarType(Arr(I, 5)) = 8, "'", "") & Arr(I, 5)[/COLOR]
Chào Anh
Em còn vướng 1 trường hợp như sau
Tại vị trí cột F muốn giữ định dạng như ban đầu khi thưc hiện code
vd như cột F có giá trị '1/24 thì vẫn giữ nguyên khi chạy code.
For I = 1 To UBound(dArr, 1)
Tem = dArr(I, 1)
If Dic.exists(Tem) And dArr(I, 6) = "A" Then
dArr(I, 5) = Dic.item(Tem)
Else
dArr(I, 5) = IIf(VarType(dArr(I, 5)) = 8, "'", "") & dArr(I, 5)
End If
Next I
Cám ơn anh rất nhiềuSửa vòng lập for thứ 2 thành:
Mã:For I = 1 To UBound(dArr, 1) Tem = dArr(I, 1) If Dic.exists(Tem) And dArr(I, 6) = "A" Then dArr(I, 5) = Dic.item(Tem) Else dArr(I, 5) = IIf(VarType(dArr(I, 5)) = 8, "'", "") & dArr(I, 5) End If Next I