Option Explicit
Const SoDong As Long = 5000
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range([A2], Cells(SoDong, "A"))) Is Nothing Then
Dim Rng As Range, sRng As Range
Set Rng = Sheet2.Range(Sheet2.[A1], Sheet2.[A65500].End(xlUp))
Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then _
Target.Offset(, 1).Resize(, 2).Value = sRng.Offset(, 1).Resize(, 2).Value
End If
End Sub
(1) Có cách nào dùng công thức không bạn? mình vẫn ko hình dung ra được
(2) Mình chỉ hiểu theo cách của bạn là Copy bất kì số tham chiếu nào dán qua Sheet1 thì nó sẽ chạy như mình muốn, nhưng cột số tham chiếu ở Sheet1 là cố định mà bạn và nó chỉ lấy một vài số ở bên Sheet2 chứ không lấy hết, nhờ bạn làm ví dụ giùm mình. cảm ơn nhiều lắm!
Option Explicit
Sub CopyAll()
Dim Cls As Range, Rng As Range, sRng As Range, Sh As Worksheet
Set Sh = Sheet2
Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
For Each Cls In Range([A2], [A65500].End(xlUp))
Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
Cls.Offset(, 1).Resize(, 2).Value = sRng.Offset(, 1).Resize(, 2).Value
Else
Cls.Offset(, 1).Value = "Nothing"
End If
Next Cls
End Sub