[Help] Tự thay dữ liệu cũ bằng dữ liệu mới

nero2428

Thành viên mới
Tham gia ngày
19 Tháng mười 2019
Bài viết
8
Được thích
1
Điểm
15
Tuổi
32
Như tiêu đề mình cần thay giá trị cũ bằng giá trị mới thỏa mãn 2 điều kiện: Process và Code cũ. Sau khi copy dữ liệu vào phần nhập liệu thì cần có một nút mà nhấn vào nó sẽ tự tìm trong phần nhập liệu những giá trị theo Process và Code cũ, sau đó tự thay Code cũ bằng Code mới. Lưu ý 1 Code cũ có thẻ thuộc 2 Process khác nhau.

Cảm ơn cả nhà.
1574426987042.png
 

File đính kèm

XuanThanh

Thành viên thường trực
Tham gia ngày
20 Tháng ba 2007
Bài viết
248
Được thích
353
Điểm
710
Mã:
Sub Chuyen()
    Dim m As Long, n As Long, i As Long, j As Long
    n = Range("A65000").End(xlUp).Row
    m = Range("D65000").End(xlUp).Row
    For i = 3 To n
        For j = 3 To m
            If Range("A" & i) = Range("D" & j) And Range("B" & i) = Range("E" & j) Then
                Range("B" & i) = Range("F" & j)
            End If
        Next
    Next
End Sub
Dán Sub này vào sheet1 rồi chạy nó
 

nero2428

Thành viên mới
Tham gia ngày
19 Tháng mười 2019
Bài viết
8
Được thích
1
Điểm
15
Tuổi
32
T
Mã:
Sub Chuyen()
    Dim m As Long, n As Long, i As Long, j As Long
    n = Range("A65000").End(xlUp).Row
    m = Range("D65000").End(xlUp).Row
    For i = 3 To n
        For j = 3 To m
            If Range("A" & i) = Range("D" & j) And Range("B" & i) = Range("E" & j) Then
                Range("B" & i) = Range("F" & j)
            End If
        Next
    Next
End Sub
Dán Sub này vào sheet1 rồi chạy nó
Cảm ơn bạn nhiều. Đã chạy được.
 

phuocam

Thành viên mới
Tham gia ngày
16 Tháng năm 2013
Bài viết
2,391
Được thích
3,166
Điểm
560
Sub Chuyen()
For j = 3 To m
If Range("A" & i) = Range("D" & j) And Range("B" & i) = Range("E" & j) Then
Range("B" & i) = Range("F" & j)
End If
Next
Khi đã tìm thấy và thay thế, nên thoát vòng for j để tăng tốc:
PHP:
For j = 3 To m
            If Range("A" & i) = Range("D" & j) And Range("B" & i) = Range("E" & j) Then
                Range("B" & i) = Range("F" & j)
               Exit for
            End If           
        Next
Nếu dữ liệu lớn, dùng Dic_to có thể cải thiện tốc độ. :)
 

VetMini

Gian hùng bàn phiếm (thành viên trôi nước)
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
7,917
Được thích
9,261
Điểm
560
Khi đã tìm thấy và thay thế, nên thoát vòng for j để tăng tốc:
...
Nếu dữ liệu lớn, dùng Dic_to có thể cải thiện tốc độ. :)
Nếu muốn cải tiến tốc độ thì sắp xếp bảng dò, và dùng phương pháp dò nhị phân.
Tuy nhiên, bài này có lẽ cách dễ nhất là dùng hàm Find.

Lưu ý: đề bài này không thực sự hoàn chỉnh. Nếu không tìm được code để thay thế thì sao?
 
Lần chỉnh sửa cuối:
Top Bottom