Dùng thử code này xem:Nhờ anh chị giúp đỡ tạo giá trị tại cột H là giá trị value khi ta nhập mới giá trị tại cột G , không hiện công thức như file mẫu .
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Count = 1 Then
On Error Resume Next
If Target = "" Then Target.Offset(, 1) = ""
Target.Offset(, 1) = Range("B4:C8").Find(Target, Lookat:=xlWhole).Offset(, 1)
End If
End Sub
Mà là:Nhờ anh chị giúp đỡ tạo giá trị tại cột H là giá trị value khi ta nhập mới giá trị tại cột G , không hiện công thức như file mẫu .
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Count = 1 Then
With Target
.Offset(, 1) = Application.WorksheetFunction.VLookup(.Value, Range("B4:C9"), 2, False)
End With
End If
End Sub
Nếu tôi chuyển "B4:C9" sang Sheet2 thì Code viết như thế nào, tôi thử dùng name thay thế mà không được ?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Count = 1 Then
Dim Sh As Worksheet
Set Sh = Sheets("sheet2")
With Target
On Error GoTo GPE
' .Offset(, 1) = WorksheetFunction.VLookup(.Value, Sh.Range("B4:C9"), 2, False)'
.Offset(, 1) = _
Application.WorksheetFunction.VLookup(.Value, Sh.Range("Bang"), 2, False)
End With
End If
Exit Sub
GPE: Target.Offset(, 1) = "Chua Co Ma Nay"
End Sub
Các trường hợp trên có thể dùng Find, sao anh không dùng mà lại VLOOKUP nhỉ?PHP:Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Count = 1 Then Dim Sh As Worksheet Set Sh = Sheets("sheet2") With Target On Error GoTo GPE ' .Offset(, 1) = WorksheetFunction.VLookup(.Value, Sh.Range("B4:C9"), 2, False)' .Offset(, 1) = _ Application.WorksheetFunction.VLookup(.Value, Sh.Range("Bang"), 2, False) End With End If Exit Sub GPE: Target.Offset(, 1) = "Chua Co Ma Nay" End Sub
From Sa_DQ:
Xài cho đỡ quên =VLOOKUP() đó thôi!
Bạn muốn thể chỉ cần sửa:Cách của ndu chỉ khi lick chọn 2 lần, giá trị cột H mới xuất hiện, nhờ ndu chỉnh lại chỉ nhập 1 lần là giá trị tại ô H xuất hiện.thanks
Thà rằng xài công thức, còn đã VBA thì bạn tạm "quên" mấy cái SUMIF, SUMPRODUCT gì đó đi ---> Bạn chỉ cần nêu ý định bạn muốn trong file, mọi người sẽ làm giúpVậy trong trường hợp này ta sử dụng những hàm SUM, SUMIF, SUMPRODUCT hoặc nhân giá trị giữa 2 cột thì công thức thể hiện như thế nào, vì em thử hàm sumif và nhân giá trị 2 cột với nhau thì chưa được , nhờ anh chị giúp và giải thích code khi viết hàm trong đoạn code :
.Offset(, 1) = Application.WorksheetFunction."......".thanks