Hong.Van
Busy
- Tham gia
- 7/5/12
- Bài viết
- 2,330
- Được thích
- 1,767
Em muốn tìm các mã mà có giá trị đầu tiên (tính từ trên xuống)
Code của em
Code trên tạm tìm đúng số theo yêu cầu
Nhưng bây giờ em thí nghiệm như sau
Tại sheet Ma, cell I16 và J16 em thêm lần lượt là 1111 và giá trị là 123
sau khi chạy code lại thì kết quả ở sheet TK bị thay đổi
cụ thể mã 1111 nó thay số 1.000.000 thành số 123
Nếu thêm mã và giá trị của những thằng khác thì không bị ảnh hưởng!?
Nếu code trên sửa dòng
Thành
Thì hết lỗi, cho em hỏi tại sao? em cảm ơn!
Code của em
Mã:
Sub TimTenMaTK()
Dim i As Long
Dim KqArr, Ma
Dim K As Range, Khoi As Range
'1. Côòt muôìn doÌ
With ActiveSheet
Ma = .Range(.[A2], .[A65536].End(3)).Value ' maÞ doÌ
End With
'2. DoÌ õÒ côòt
With Sheets("MA")
Set K = .Range(.[I12], .[I500].End(3)) ' khôìi maÞ doÌ ðêÒ tiÌm
'Set K = .Range(.[I11], .[I500].End(3)) ' khôìi maÞ doÌ ðêÒ tiÌm
End With
'3. Redim Khôìi kêìt quaÒ vaÌ tiÌm
ReDim KqArr(1 To UBound(Ma, 1), 1 To 3)
For i = 1 To UBound(Ma, 1)
Set Khoi = K.Find(Ma(i, 1), , xlValues, xlWhole) ' bãìt ðâÌu tiÌm
If Not Khoi Is Nothing Then
If Ma(i, 1) <> "" Then
KqArr(i, 1) = K.Find(Ma(i, 1), , xlValues, xlWhole).Offset(, 1)
KqArr(i, 2) = K.Find(Ma(i, 1), , xlValues, xlWhole).Offset(, 2)
End If
End If
Next i
'4. gaìn kêìt quaÒ
ActiveSheet.Range("B2").Resize(UBound(KqArr), 3).Value = KqArr
End Sub
Nhưng bây giờ em thí nghiệm như sau
Tại sheet Ma, cell I16 và J16 em thêm lần lượt là 1111 và giá trị là 123
sau khi chạy code lại thì kết quả ở sheet TK bị thay đổi
cụ thể mã 1111 nó thay số 1.000.000 thành số 123
Nếu thêm mã và giá trị của những thằng khác thì không bị ảnh hưởng!?
Nếu code trên sửa dòng
Mã:
Set K = .Range(.[I12], .[I500].End(3))
Mã:
Set K = .Range(.[I11], .[I500].End(3))