Вы пропустили следующую строчку:
Option Explicit
Sub Test()
Sheets("Arrivals").Select
Dim cel As Range
Dim unit As Range
ParcelCount = Range("BW8").Value
LowerParcelCount = Range("BW5").Value
ThresholdCount = 0
For Each cel In Range("BQ3:BQ78")
If cel.Value > LowerParcelCount Then
For Each unit In Range("C3:C78")
ThresholdCount = ThresholdCount + unit.Value
Next unit
End If
Next cel
Range("BS16") = ThresholdCount
End Sub
Также вы должны научиться делать отступ для своего кода, избегайте использования .Select
и объявляйте все свои переменные, используя Option Explicit
ЗдесьВаш код должен выглядеть следующим образом:
Option Explicit
Sub Test()
Dim ws As Worksheet 'declare your worksheets
Set ws = ThisWorkbook.Sheets("Arrivals") 'like this you will refer to it using ws
Dim cel As Range, unit As Range
Dim ParcelCount As Long, LowerParcelCount As Long, ThresholdCount As Long
With ws 'you could also use With ThisWorkbook.Sheets("Arrivals") if you are not using that sheet anymore
ParcelCount = .Range("BW8").Value
LowerParcelCount = .Range("BW5").Value
ThresholdCount = 0
For Each cel In .Range("BQ3:BQ78")
If cel.Value > LowerParcelCount Then
For Each unit In .Range("C3:C78")
ThresholdCount = ThresholdCount + unit.Value
Next unit
End If
Next cel
.Range("BS16") = ThresholdCount
End With
End Sub
Как видите, нет необходимости выбирать прибытия листа, так как мы объявили его сверху и используем его ссылку все время, потому что все внутриWith ws