Hàm UDF Sum này sai ở đâu?

Liên hệ QC

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
Em loay hoay hàm SUm này nhưng không ra kết quả
Hình như nó không chịu chạy theo vòng lặp thì phải

PHP:
Function SumAll(RngCur As Range, dk1, RngDate As Range, dk2) As Long ' 
Dim i As Long
For i = 1 To RngCur.Rows.Count    
  If RngCur(i, 1) = dk1 And RngDate(i, 1) = dk2 
  Then
     SumAll = Application.WorksheetFunction.Sum(RngCur.Offset(, -1).Cells(i, 1))        
     SumAll = SumAll       
  End If 
Next

End Function
 
Em loay hoay hàm SUm này nhưng không ra kết quả
Hình như nó không chịu chạy theo vòng lặp thì phải

PHP:
Function SumAll(RngCur As Range, dk1, RngDate As Range, dk2) As Long ' 
Dim i As Long
For i = 1 To RngCur.Rows.Count    
  If RngCur(i, 1) = dk1 And RngDate(i, 1) = dk2 
  Then
     SumAll = Application.WorksheetFunction.Sum(RngCur.Offset(, -1).Cells(i, 1))        
     SumAll = SumAll       
  End If 
Next

End Function
Không có file nên khó đoán... Tuy nhiên có thể gợi ý chút
PHP:
For i = 1 To RngCur.Rows.Count    
  If RngCur(i, 1) = dk1 And RngDate(i, 1) = dk2 
  Then
     SumAll = SumAll +RngCur.Offset(, -1)
  End If 
Next
Đạt được điều kiện rồi thì phải cộng dồn mới ra kết quả chứ
 
Upvote 0
Em loay hoay hàm SUm này nhưng không ra kết quả
Hình như nó không chịu chạy theo vòng lặp thì phải

PHP:
Function SumAll(RngCur As Range, dk1, RngDate As Range, dk2) As Long ' 
Dim i As Long
For i = 1 To RngCur.Rows.Count    
  If RngCur(i, 1) = dk1 And RngDate(i, 1) = dk2 
  Then
     SumAll = Application.WorksheetFunction.Sum(RngCur.Offset(, -1).Cells(i, 1))        
     SumAll = SumAll       
  End If 
Next
End Function
Sai ở câu này:
Mã:
 SumAll = Application.WorksheetFunction.Sum(RngCur.Offset(, -1).Cells(i, 1))
Mình tạm sửa như sau:
Mã:
Function SumAll(RngCur As Range, dk1, RngDate As Range, dk2) As Long
Dim i As Long
For i = 1 To RngCur.Rows.Count
  If RngCur(i, 1) = dk1 And RngDate(i, 1) = dk2 Then
      SumAll = SumAll + RngCur(i, 1).Offset(, 1)
   End If
Next
End Function
 
Upvote 0
Em đã hiểu và làm được rồi
Vấn đề ở chỗ này
PHP:
 SumAll = SumAll + RngCur(i, 1).Offset(, 1)
 
Upvote 0
Web KT
Back
Top Bottom