Thảo luận về phương thức tìm kiếm - METHOD FIND() (2 người xem)

  • Thread starter Thread starter cadafi
  • Ngày gửi Ngày gửi
Liên hệ QC

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

To Sealand:
Mình đã sửa rồi mà nó vẫn bị. Điều mình thắc mắc là sub vẫn tìm ra được hết các khế ước phát sinh mới. Cột số vay và số trả tương ứng mình chỉ dùng hàm countif thôi nhưng sao đến lúc tìm được khế ước mới cuối cùng rồi thì nó out luôn, không chạy tiếp nữa. Đối với khế ước phát sinh mới cuối cùng, theo mình là đến dòng code màu đỏ bên dưới vẫn đúng còn đoạn tiếp theo thì ko chạy :(
Ai giải thích giúp với

Sub Update()
Dim SaveRg As Range, Cap_nhat As Range, i As Integer
Dim Mang_DL()
Sohang = Range("Khe_uoc").Rows.Count
ReDim Mang_DL(Sohang, 2)
For i = 1 To UBound(Mang_DL, 1)
Set SaveRg = Sheets("Sheet5").Range("A2:A" & Sheets("Sheet5").Cells(Rows.Count, 1).End(3).Row)
ER = SaveRg.Rows.Count
Mang_DL(i, 1) = Sheets("Input").Range("A" & i + 4).Value
Mang_DL(i, 2) = Sheets("Input").Range("F" & i + 4).Value
If Mang_DL(i, 1) = "nh10" Then
Set Cap_nhat = SaveRg.Find(What:=Mang_DL(i, 2))
If Cap_nhat Is Nothing Then
SaveRg.Range("A" & ER + 1).Formula = "'" & Mang_DL(i, 2)
Range("B" & ER + 1).Value = Application.SumIf(Range("Khe_uoc"), Range("A" & ER + 1), Range("So_vay"))
Range("C" & ER + 1).Value = Application.SumIf(Range("Khe_uoc"), Range("A" & ER + 1), Range("So_tra"))
Range("D" & ER + 1).Value = Application.Sum(Range("B" & ER + 1), -Range("C" & ER + 1))
Else
End If
Else: End If
Next i
End Sub
 
Tại sao bạn hỏi mà không đưa file lên mình không Test được nên chỉ đoán thôi.
Mình nghi bạn viết Code không rõ ràng nên sai bản chất, mình thấy trong Code có hàng loạt cái Range không rõ ràng bạn sửa lại chắc là được:

SaveRg.Range("A" & ER + 1).Formula = "'" & Mang_DL(i, 2)
Range("B" & ER + 1).Value = Application.SumIf(Range("Khe_uoc"), Range("A" & ER + 1), Range("So_vay"))
Range("C" & ER + 1).Value = Application.SumIf(Range("Khe_uoc"), Range("A" & ER + 1), Range("So_tra"))
Range("D" & ER + 1).Value = Application.Sum(Range("B" & ER + 1), -Range("C" & ER + 1))


Chỉ có dòng màu xanh là ghi rõ range của range mẹ là SaveRg mà SaveRg bắt đầu từ dòng 2.
Phần còn lại không ghi rõ nên code hiểu là Range của Sheet mà nó lại bắt đầu bằng dòng 1. Tóm lại đoạn sau bị lùi 1 dòng.

Bạn sửa lại như sau nha:

Mã:
With SaveRg
[FONT=arial].Range("A" & ER + 1).Formula = "'" & Mang_DL(i, 2)
            .Range("B" & ER + 1).Value = Application.SumIf(.Range("Khe_uoc"), .Range("A" & ER + 1), .Range("So_vay"))
            .Range("C" & ER + 1).Value = Application.SumIf(.Range("Khe_uoc"), .Range("A" & ER + 1), .Range("So_tra"))
            .Range("D" & ER + 1).Value = Application.Sum(.Range("B" & ER + 1), -.Range("C" & ER + 1))[/FONT]
End With

(Nếu còn tiếp tục thì nên mở Topic mới đừng tiếp ở đây, vì đây là Topic chuyên về phương thức Find)
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom