Trời ơi, cô gái ơi, thông tin quan trọng thế mà bây giờ em mới tiết lộ?Dạ em là nữ ạ
Nữ thì có khác gì chơi cờ vua được thêm con xe. Bao chàng trai mơ được là hoàng tử, là cứu tinh của người đẹp.
Bạn phải biết những thông tin nào quan trọng để khi ráp vào tập tin cụ thể thì biết phải sửa những gì.
1. Danh sách dùng cho DV nằm ở đâu - ở sheet nào?
Do bạn sẽ chỉnh sửa danh sách dùng cho DV và bạn muốn code phản ứng ngay tắp lự với thay đổi đó để chỉnh sửa những chỗ đã chọn ở sheet khác, nên bạn phải biết đó là sheet nào để đặt code vào đúng sheet đó. Trước đó ở tập tin ví dụ thì danh sách nằm ở Sheet1 nên người ta đặt code ở Sheet1. Bây giờ danh sách nằm ở sheet "DSSP" nên code phải đặt ở sheet "DSSP".
2. Danh sách nằm ở cột nào?
Ở tập tin ví dụ thì danh sách nằm ở cột A, vì thế trong code có If Target.Column = 1 ... Bây giờ danh sách nằm ở cột D nên phải sửa thành
... Target.Column = 4 (cột D). Tôi thêm cả điều kiện về dòng - Target.Row >= 3. Tức mọi thay đổi ở dòng 1 và 2 không phục vụ.
Tóm lại thay đổi dòng cũ thành
Mã:
If Target.Count = 1 And Target.Row >= 3 And Target.Column = 4 Then
3. Code sẽ tìm các mục để chỉnh sửa ở sheet nào, cột nào? Tức DV ở sheet nào, cột nào?
Trước đó DV ở sheet2, cột C. Bây giờ DV nằm ở sheet "Danh Sach", cột H nên phải thay bằng
Worksheets("Danh Sach").Range("H5:H1000").Replace What:=oldValue, Replacement:=newValue, _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True
Tôi dùng Range("H5:H1000") thay cho Columns("H").
Mỗi khi ráp vào tập tin cụ thể bạn phải chú ý 3 điểm tôi ghi ở trên thì code mới được để đúng chỗ và chạy chuẩn.
-----------
Toàn bộ code đã sửa từ code của bạn Phuocam ở dưới.
Trong tập tin đính kèm đã có code được sửa. Tôi cũng xóa toàn bộ (biến thành chú thích) code trong sheet "Danh Sach".
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim newValue As Variant, oldValue As Variant
Application.ScreenUpdating = False
Application.EnableEvents = False
If Target.Count = 1 And Target.Row >= 3 And Target.Column = 4 Then
newValue = Target.Value
Application.Undo
oldValue = Target.Value
Target.Value = newValue
Worksheets("Danh Sach").Range("H5:H1000").Replace What:=oldValue, Replacement:=newValue, _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub