duong_nam_dao
Thành viên chính thức
- Tham gia
- 2/3/08
- Bài viết
- 89
- Được thích
- 44
Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect "123" If Target.Row >= 4 And Target.Row = 6 And Target.Column Còn khu vực đó thì bỏ chọn Lock Cell đi vì khi nhập vào không bị Protect nó lôi kéo! Thân
Code của file trên tuy không dùng VLOOKUP nhưng dùng MATCH.. thuật toán cũng như nhau thôi màVậy sao không dùng Vlookup để trích xuất ra, còn nếu không tìm thấy thì vẫn dữ nguyên vậy.
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect "123"
If Target.Row >= 4 And Target.Row <= 19 And Target.Column >= 6 And Target.Column <= 11 Then
For i = [B4].Row To [B4].End(xlDown).Row
If Target.Value = Cells(i, 3) Then
Target.Value = Cells(i,2)
End If
Next
End If
ActiveSheet.Protect "123"
End Sub
Cái này cũng đựoc nhưng tôi nghĩ liệu có nên thay:Hoặc chỉ đơn giản là như vầy cũng được. Còn protect hay không thì có thể là trong file chính thức của bác có xài nên không bỏ được, vậy tùy bác em không có ý kiến gì. Chỉ là tại ô nhập liệu vào thì đừng có Locked cell để người dùng có thể nhập được, vậy thôi!
PHP:Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect "123" If Target.Row >= 4 And Target.Row <= 19 And Target.Column >= 6 And Target.Column <= 11 Then For i = [B4].Row To [B4].End(xlDown).Row If Target.Value = Cells(i, 3) Then Target.Value = Cells(i,2) End If Next End If ActiveSheet.Protect "123" End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Row >= 4 And Target.Row <= 19 And Target.Column >= 6 And Target.Column <= 11 Then
Target.Value = Application.WorksheetFunction.VLookup(Target.Value, Range("A4:B" & [B4].End(xlDown).Row), 2, 0)
End If
End Sub
Nhưng nếu dùng VLOOKUP thì lại .... quay về ý kiến ở bài #11Dùng VLOOKUP sẽ bớt được vòng lặp:
Mã:Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Row >= 4 And Target.Row <= 19 And Target.Column >= 6 And Target.Column <= 11 Then Target.Value = Application.WorksheetFunction.VLookup(Target.Value, Range("A4:B" & [B4].End(xlDown).Row), 2, 0) End If End Sub