Nhập giá trị mới thay thế giá trị cũ

Liên hệ QC

hcl_pt

Thành viên thường trực
Tham gia
21/10/10
Bài viết
208
Được thích
11
Mong GPE giúp đỡ hộ mình trường hợp này ạ: Mình có bảng dữ liệu ở sheet1, Cột A là giá trị mã cũ không thay đổi, cột B là giá trị mã mới mình nhập vào, từ cột C trở đi là có chứa giá trị của mã cũ. Các bạn có thể giúp mình cách làm là khi mình nhập giá trị bất kì vào cột mã mới thì các giá trị tương ứng của mã cũ từ cột C trở đi cũng thay đổi theo. Ví dụ: mình nhập giá trị 1 vào mã mới tương ứng với giá trị mã cũ là 1700 thì các giá trị của mã cũ là 1700 có trong các cột từ cột C trở đi đều đổi thành giá trị 1 của mã mới; nhập giá trị 4 vào mã mới tương ứng với giá trị mã cũ là 2460 thì các giá trị của mã là 2460 có trong các cột từ cột C trở đi đều đổi thành giá trị 4 của mã mới;...v.vv... Mình đã dùng phương án Find để làm nhưng cột mã cũ có rất nhiều giá trị (ở bảng này mình chỉ xin trích ra một phần nhỏ) làm như vậy rất mất nhiều thời gian. Vì vậy Rất mong sự giúp đỡ của các bạn! Xin Chân thành cảm ơn !
 

File đính kèm

  • Nhapgiatrimoi_thaythe_giatricu.xlsx
    80.1 KB · Đọc: 7
Mong GPE giúp đỡ hộ mình trường hợp này ạ: Mình có bảng dữ liệu ở sheet1, Cột A là giá trị mã cũ không thay đổi, cột B là giá trị mã mới mình nhập vào, từ cột C trở đi là có chứa giá trị của mã cũ. Các bạn có thể giúp mình cách làm là khi mình nhập giá trị bất kì vào cột mã mới thì các giá trị tương ứng của mã cũ từ cột C trở đi cũng thay đổi theo. Ví dụ: mình nhập giá trị 1 vào mã mới tương ứng với giá trị mã cũ là 1700 thì các giá trị của mã cũ là 1700 có trong các cột từ cột C trở đi đều đổi thành giá trị 1 của mã mới; nhập giá trị 4 vào mã mới tương ứng với giá trị mã cũ là 2460 thì các giá trị của mã là 2460 có trong các cột từ cột C trở đi đều đổi thành giá trị 4 của mã mới;...v.vv... Mình đã dùng phương án Find để làm nhưng cột mã cũ có rất nhiều giá trị (ở bảng này mình chỉ xin trích ra một phần nhỏ) làm như vậy rất mất nhiều thời gian. Vì vậy Rất mong sự giúp đỡ của các bạn! Xin Chân thành cảm ơn !
Bạn sử dụng code sau nhé:
PHP:
Sub ThayThe()
    Dim Cll As Range
    Set Cll = [B:B].Find("*")
    Do While Cll.Row > 1
        [C:XFD].Replace Cll.Offset(, -1), Cll, xlWhole
        Set Cll = [B:B].Find("*", Cll)
    Loop
End Sub
Nếu bạn muốn khi nhập dữ liệu mới ở cột B sẽ tự động thay thế thì bạn sử dụng code sau cho Sheet1, tuy nhiên mình thấy cách này không an toàn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Target.Count = 1 Then
        [C:XFD].Replace Target.Offset(, -1), Target, xlWhole
    End If
End Sub
 
Bạn sử dụng code sau nhé:
PHP:
Sub ThayThe()
    Dim Cll As Range
    Set Cll = [B:B].Find("*")
    Do While Cll.Row > 1
        [C:XFD].Replace Cll.Offset(, -1), Cll, xlWhole
        Set Cll = [B:B].Find("*", Cll)
    Loop
End Sub
Nếu bạn muốn khi nhập dữ liệu mới ở cột B sẽ tự động thay thế thì bạn sử dụng code sau cho Sheet1, tuy nhiên mình thấy cách này không an toàn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Target.Count = 1 Then
        [C:XFD].Replace Target.Offset(, -1), Target, xlWhole
    End If
End Sub
Vâng! Rất hay bạn ạ! Cảm ơn bạn nhiều! Chúc bạn luôn thành công!
 
Web KT

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

Back
Top Bottom