
Gửi bởi
nvhieutk02
Xin chào mọi người.</font></font>
Mình đang tìm hiểu VBA. Không hiểu xao lệnh tìm kiếm lạikhông cho ra kết quả chính xác trong đoạn code sau:
Trên trang bảng tính sheet1 của Excel , Giá trị các ô:A1=120; A2=2122 ; A3=2222 ; A4 =122 .
Code như sau: (sheet1 đang active)
tk=122
nd=500
Range(“A1:A5”).Find(tk).Activate
ActiveCell.Offset(0, 1).Value = nd
Nhưng chạy kết quảlà : tại ô B2= 500 (đáng lẽ phải là B4=500)
Có cách nào để tìm đúng giá trị “122” không? Mọi người chỉdùm mình với.
Find Method mà viết kiểu đó đâu có được
TÌM CHÍNH XÁC thì phải thế này:
Mã:
Range("A1:A5").Find(tk, , xlValues, xlWhole)
Thằng em màu đỏ mang ý nghĩa TÌM CHÍNH XÁC đấy
Thêm nữa, trường hợp tìm không thấy mà vẫn cố tình Activate thì sẽ lỗi. Ta thường có cách viết "chắc bắp" thế này:
Mã:
Sub Test()
Const nd = 500, tk = 122
<font color="#ff0000">Dim rFind As Range
Mã:
<font color="#ff0000">Set rFind = Range("A1:A5").Find(tk, , xlValues, xlWhole)
Mã:
If Not rFind Is Nothing Then rFind.Offset(0, 1).Value = nd
End Sub