Private Sub Worksheet_Change(ByVal Target As Range)
Dim FindRng As Range
If Target.Address = "$D$2" Then
Set FindRng = Range([B6], [B6].End(xlDown))
FindRng.Find(Target).Select
End If
End Sub
Thì OFFSET qua 2 cột là được chứ gìThank bác, nhưng tôi muốn nó trỏ về cột D chứ không về cột B. Tôi đã thay B6 bằng D6 nhưng không đwợc.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FindRng As Range
If Target.Address = "$D$2" Then
Set FindRng = Range([B6], [B6].End(xlDown))
FindRng.Find(Target)[COLOR=Red][B].Offset(, 2)[/B][/COLOR].Select
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FindRng As Range
If Target.Address = "$D$2" Then
Set FindRng = Range([B6], [B6].End(xlDown))
FindRng.Find(Target).Offset(, 2).Select
End If
Dim FindRng As Range
If Target.Address = "$F$2" Then
Set FindRng = Range([B6], [B6].End(xlDown))
FindRng.Find(Target).Offset(, 4).Select
End If
End Sub
Viết thế không được rồiTrong cùng 1 sheet đó, tương tự tôi muốn tìm thêm tại ô $F$2 nhưng không đwợc. Bác sử giúp.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FindRng As Range
If Target.Address = "$D$2" Then
Set FindRng = Range([B6], [B6].End(xlDown))
FindRng.Find(Target).Offset(, 2).Select
End If
Dim FindRng As Range
If Target.Address = "$F$2" Then
Set FindRng = Range([B6], [B6].End(xlDown))
FindRng.Find(Target).Offset(, 4).Select
End If
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FindRng As Range
If Not Intersect(Union([D2], [F2]), Target) Is Nothing Then
Set FindRng = Range([B6], [B6].End(xlDown))
Cells(FindRng.Find(Target).Row, Target.Column).Select
End If
End Sub
thành:Intersect(Union([D2], [F2]), Target)
hoặc đơn giãn là:Intersect(Union([D2], [E2], [F2]), Target)
Intersect([D2:F2], Target)
Thế thì tôi không thể giúp được rồi... (vì hỏng biết tình hình cụ thể trong file)Nhưng code đó tôi vẫn dùng mà.!!!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E2:E10000")) Is Nothing Then
If Target(1, 2).Value <> "" Then
vbans = MsgBox("Da co du lieu roi . Ban co muon chep de len khong?")
If vbans = vbOK Then
With Target(1, 2)
.Value = Now
.EntireColumn.AutoFit
End With
End If
Else
With Target(1, 2)
.Value = Now
.EntireColumn.AutoFit
End With
End If
End If
End Sub
Tôi nghĩ đoạn này dùng để tránh trường hợp xóa nhiều cell cùng 1 lúc ---> Sẽ bị báo lổiBạn có nhầm gì chăng
If Target.Cells.Count > 1 Then Exit Sub
Ah... tôi quên nói:Tôi đã copy thử nhưng bị báo lỗi đoạn
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FindRng As Range
If Not Intersect(Union([D2], [F2]), Target) Is Nothing Then
Set FindRng = Range([B6], [B6].End(xlDown))
Cells(FindRng.Find(Target).Row, Target.Column).Select
End If