Sub TNCN() Dim SrcArr, TsArr, ResArr()
Dim lR As Long, i As Long, lRIndex As Long
TsArr = Sheet3.Range(Sheet3.[D5], Sheet3.[D65000].End(xlUp)).Offset(, -1).Resize(, 3).Value
With Sheet1
lRIndex = .[A65000].End(xlUp).Row
If lRIndex > 5 Then
SrcArr = .Range(.[A6], .[A65000].End(xlUp)).Offset(, 10).Value
ReDim ResArr(1 To UBound(SrcArr), 1 To 1)
For lR = 1 To UBound(SrcArr)
If Len(SrcArr(lR, 1)) Then
For i = 2 To UBound(TsArr)
If CLng(SrcArr(lR, 1)) <= CLng(TsArr(i - 1, 1)) Then
ResArr(lR, 1) = Round(SrcArr(lR, 1) * TsArr(i - 1, 2), 0)
Exit For
ElseIf CLng(SrcArr(lR, 1)) > CLng(TsArr(i - 1, 1)) And CLng(SrcArr(lR, 1)) <= CLng(TsArr(i, 1)) Then
ResArr(lR, 1) = Round(SrcArr(lR, 1) * TsArr(i, 2), 0) - TsArr(i, 3)
Exit For
Else
ResArr(lR, 1) = Round(SrcArr(lR, 1) * TsArr(UBound(TsArr), 2), 0) - TsArr(UBound(TsArr), 3)
End If
Next i
End If
Next lR
If lR Then
.[M6:M10000].ClearContents
.[M6].Resize(lR - 1).Value = ResArr
End If
Else
Exit Sub
End If
End With
End Sub