Bạn cho mình hỏi mình theo code của bạn viết để tính sheet “doituong” nhưng chạy không được, bạn xem chỉnh giúp lại cho mình
Function doituong(Phuong As Range, cot As String, kieu As Integer, thang As Integer, nam As Integer) As Integer
'Tinh ngay bat dau va ket thuc
If kieu = 0 Then
StartDate = DateSerial(nam, thang - 1, 16)
EndDate = DateSerial(nam, thang, 15)
ElseIf kieu = 1 Then
If thang > 4 Or thang < 1 Then
doituong = 0
Exit Function
End If
thang = thang * 3 - 1
StartDate = DateSerial(nam, thang - 3, 16)
EndDate = DateSerial(nam, thang, 15)
Else
doituong = 0
Exit Function
End If
lr = Sheets(Phuong.Value).Range("A" & Rows.Count).End(xlUp).Row
arr = Sheets(Phuong.Value).Range("A8:AA" & lr)
Select Case cot
Case "B"
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 Then
doituong = doituong + 1
End If
Next
Case "C"
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 11) = 1 Then
doituong = doituong + 1
End If
Next
Case "D"
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 11) = 1 Then
doituong = doituong + arr(i, 18) + arr(i, 16) + arr(i, 14)
End If
Next
Case "E"
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 11) = 1 Then
If arr(i, 15) <> ""
End If
Next
Case "F"
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 11) = 1 Then
If arr(i, 19) <> ""
End If
Next
Case "G"
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 11) = 1 Then
doituong = doituong + arr(i, 14)
End If
Next
Case "H"
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 11) = 1 Then
doituong = doituong + arr(i, 18)
End If
Next
Case "I"
toi = Sheets("Bang tra").Range("A2").Value
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 9) = toi Then
doituong = doituong + 1
End If
Next
Case "J"
toi = Sheets("Bang tra").Range("A2").Value
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 9) = toi Then
If arr(i, 15) <> "" Then doituong = doituong + 1
End If
Next
Case "K"
toi = Sheets("Bang tra").Range("A2").Value
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 9) = toi Then
If arr(i, 15) <> "" Then doituong = doituong + 1
End If
Next
Case "L"
toi = Sheets("Bang tra").Range("A2").Value
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 9) = toi Then
doituong = doituong + arr(i, 14)
End If
Next
Case "M"
toi = Sheets("Bang tra").Range("A2").Value
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 20) >= StartDate And arr(i, 20) <= EndDate And arr(i, 21) = 1 And arr(i, 9) = toi Then
doituong = doituong + arr(i, 18)
End If
Next
End Select
End Function
