Không gán được formula vào cell khi dùng Private Sub Worksheet_Change (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

tranhungkcn

Thành viên mới
Tham gia
4/1/09
Bài viết
9
Được thích
5
mục đích của em là khi nhập nội dung vào ô nào của cột C, ô ở hàng tương ứng của cột D sẽ tự động nhập vào một công thức, nhưng sao nó báo lỗi "Run time error '1004' application-defined or object-defined error

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim i As Integer
Set KeyCells = Range("C:C")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
i = Target.Row
Cells(i, 4).Select
Selection.Formula = "=IFERROR(VLOOKUP(RC[-1],'ITEM master'!C1:C2,2,0),"")"

End If
End Sub
 
mục đích của em là khi nhập nội dung vào ô nào của cột C, ô ở hàng tương ứng của cột D sẽ tự động nhập vào một công thức, nhưng sao nó báo lỗi "Run time error '1004' application-defined or object-defined error

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim i As Integer
Set KeyCells = Range("C:C")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
i = Target.Row
Cells(i, 4).Select
Selection.Formula = "=IFERROR(VLOOKUP(RC[-1],'ITEM master'!C1:C2,2,0),"")"

End If
End Sub
Bạn đưa các file đó lên xem sao.
 
Upvote 0
Do công thức dùng lẫn lộn RC và A1
Sửa
Selection.Formula = "=IFERROR(VLOOKUP(" & Selection.Offset(0, -1).Address & ",'ITEM master'!C1:C2,2,0),"")"
 
Upvote 0
Cảm ơn anh @Hoàng Trọng Nghĩa@VetMini đã quan tâm. Cách của @VetMini thì chưa thử, nhưng do vô tình em đã tìm ra cách khắc phục:
Sửa từ:
Selection.Formula = "=IFERROR(VLOOKUP(RC[-1],'ITEM master'!C1:C2,2,0),"")"
Thành:
Selection.Formula = "=IFERROR(VLOOKUP(RC[-1],'ITEM master'!C1:C2,2,0),"""")"
(thêm 2 dấu "). Chẳng hiểu thế nào khi code như ban đầu thì VBA hiểu sẽ gán công thức vào ô Cells(i,4) là
=IFERROR(VLOOKUP(RC[-1],'ITEM master'!C1:C2,2,0),")
nên nó báo lỗi công thức. Còn code sau khi sửa thì nó sẽ gán công thức vào ô Cells(i,4) là
=IFERROR(VLOOKUP(RC[-1],'ITEM master'!C1:C2,2,0),"")
đúng như ý đồ ban đầu

Dù sao cũng cảm ơn các anh đã quan tâm và hồi âm rất nhanh. vật lộn với nó cả ngày hôm nay :-)
Bài đã được tự động gộp:

Mà hình như em đăng câu hỏi ở đây thì hơi sai chỗ nhỉ. em vốn định đăng lên Chuyên đề giải đáp những thắc mắc về code VBA nhưng do chưa quen nên nhấn vào post thread :-)
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom