Help, code vba tìm kiếm và thay thế

Liên hệ QC

thanhduc_iit

Thành viên chính thức
Tham gia
2/4/11
Bài viết
55
Được thích
2
Chào các bác,
Em nhờ các bác code dùm em tìm kiếm và thay thế
Em có gửi file lên và yêu cầu trong đó ạ@$@!^%
Cảm ơn các bác ạ}}}}}
 

File đính kèm

Lần chỉnh sửa cuối:
Mã:
Sub ThayTheNGOAI()
.....................
End Sub
Do k có dữ liệu cột E nên em đưa vào code như trên thì nó chạy khá làm chậm với dữ liệu lớn!$@!!
Bài #18 bạn có thể dùng 2 cột thay cái gì bằng cái gì ở sheet khác, hàng ngàn dòng cũng được sao không thử làm, lại muốn đưa hết vào code cho rối mắt và muốn điều chỉnh cũng tìm "lé con mắt"?
Híc!
 
Lần chỉnh sửa cuối:
Upvote 0
Thì bạn phải chế thêm cột E vào (nên làm thế), chả nhẽ bạn phải nhập tay vào code từng giá trị 1.
Đây cũng là 1 gợi ý hay bác nhỉ--=0 Em nhập tay rất chậm mà dễ bị sai nữa chứ.
Chắc em phải tạo 1 sheet riêng chứa những cái này. Vì k để chung sheet đầu vào đc
 
Upvote 0
Bài #18 bạn có thể dùng 2 cột thay cái gì bằng cái gì ở sheet khác, hàng ngàn dòng cũng được sao không thử làm, lại muốn đưa hết vào code cho rối mắt và muốn điều chỉnh cũng tìm "lé con mắt"?
Híc!
Dùng cách này của bác nhanh thật.
Em vừa chạy thử cách cũ bằng cách if else if else... thì khoảng 9giây
Còn cách mới dùng sheet tạm thì khoảng 0.04giây--=0
Cảm ơn sự giúp đỡ nhiệt tình của các bác}}}}}
 
Upvote 0
Nhân tiền chủ đề này, các bác cho em cái code của thay thế này với nhé. Thanks các bác trước.
 

File đính kèm

Upvote 0
Không đưa vào sao biết cái gì thay bằng cái gì?
Tao 1 sheet khác chứa cái gì thay bằng cái gì như file này xem sao.
File bác Ba Tê hay quá, nhưng em có công việc yêu cầu khó hơn, không biết có được không, em đã sửa File bác Ba Tê một tý theo yêu cầu. Mong các bác giúp đỡ
 

File đính kèm

Upvote 0
File bác Ba Tê hay quá, nhưng em có công việc yêu cầu khó hơn, không biết có được không, em đã sửa File bác Ba Tê một tý theo yêu cầu. Mong các bác giúp đỡ

Hên xui nhé. Đẹp thì xui còn xấu thì hên.
PHP:
Public Sub GPE_XYZ()
Dim sArr(), dArr(), tArr(), I As Long, J As Long, N As Long, L As Long
tArr = Sheets("GPE").Range("A2", Sheets("GPE").Range("A2").End(xlDown)).Resize(, 2).Value
With Sheets("ngoai")
    sArr = .Range("A2", .Range("A2").End(xlDown)).Value
    ReDim dArr(1 To UBound(sArr), 1 To 1)
    For I = 1 To UBound(sArr)
        For J = 1 To UBound(tArr)
            N = InStr(sArr(I, 1), tArr(J, 1))
            If N Then
                L = Len(tArr(J, 1))
                dArr(I, 1) = Left(sArr(I, 1), N - 1) & tArr(J, 2) & Mid(sArr(I, 1), N + L, Len(sArr(I, 1)))
                Exit For
            End If
        Next J
    Next I
    .Range("C2").Resize(I - 1) = dArr
End With
End Sub
 
Upvote 0
Hên xui nhé. Đẹp thì xui còn xấu thì hên.
PHP:
Public Sub GPE_XYZ()
Dim sArr(), dArr(), tArr(), I As Long, J As Long, N As Long, L As Long
tArr = Sheets("GPE").Range("A2", Sheets("GPE").Range("A2").End(xlDown)).Resize(, 2).Value
With Sheets("ngoai")
    sArr = .Range("A2", .Range("A2").End(xlDown)).Value
    ReDim dArr(1 To UBound(sArr), 1 To 1)
    For I = 1 To UBound(sArr)
        For J = 1 To UBound(tArr)
            N = InStr(sArr(I, 1), tArr(J, 1))
            If N Then
                L = Len(tArr(J, 1))
                dArr(I, 1) = Left(sArr(I, 1), N - 1) & tArr(J, 2) & Mid(sArr(I, 1), N + L, Len(sArr(I, 1)))
                Exit For
            End If
        Next J
    Next I
    .Range("C2").Resize(I - 1) = dArr
End With
End Sub
Thanks bác nhiều, cho em hỏi thêm là nếu như không thấy giá trị thay thế ở cột A thì cột C trả về đúng cột A (hiện tại là nếu A có giá trị thay thế thì C=A', nếu không rỗng) được không ạ
 
Upvote 0
Thanks bác nhiều, cho em hỏi thêm là nếu như không thấy giá trị thay thế ở cột A thì cột C trả về đúng cột A (hiện tại là nếu A có giá trị thay thế thì C=A', nếu không rỗng) được không ạ

Chữa cháy. Thêm 1 dòng này vào trên dòng Next J:
PHP:
..................................................
        If N = 0 Then dArr(I, 1) = sArr(I, 1)
        Next J
 
Upvote 0
Cảm ơn anh nhiều, hên quá. Chắc tại em xấu @$@!^%@$@!^%@$@!^%@$@!^%
 
Upvote 0
Chữa cháy. Thêm 1 dòng này vào trên dòng Next J:
PHP:
..................................................
        If N = 0 Then dArr(I, 1) = sArr(I, 1)
        Next J
Em muôn phiền bác thêm tý nữa ạ. Khi nhập liệu ở cột A thì cột B tự chạy chứ không phải click nút "GPE"
 

File đính kèm

Upvote 0
Bạn thử code này:

Sub REPLACE1()
Application.ScreenUpdating = False
With Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
.REPLACE "AA", "XX"
.REPLACE "BF", "XX"
.REPLACE "EC", "XX"
.REPLACE "TR", "YY"
.REPLACE "OP", "YY"
.REPLACE "HG", "YY"
End With
Application.ScreenUpdating = True
End Sub
 
Upvote 0

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom