Ошибка «1004» в excel VBA, но иногда отлично работает

Я продолжаю получать

«Ошибка времени выполнения» 1004 «Определенная приложением или объектная ошибка».

в отношении этих строк.

Worksheets("5001 Prog").Range("C12").Value = (y & "'' Ream") Worksheets("5001 Prog").Range("D12").Value = count * 31.5 Worksheets("5001 Prog").Range("E12").Value = daily * 31.5 

Дело в том, что этот код работал до того, как я закрыл файл и снова открыл его. Кроме того, если я перестраиваю строки, иногда они работают. Я попытался изменить переменные «count» и «daily» равным «12», а затем обработать их в приведенном выше коде, и он по-прежнему возвращает ошибку.

Я просмотрел несколько ответов для этого кода ошибки и попробовал несколько вещей, упомянутых в этих сообщениях, но ничего не получилось. Я ценю все отзывы, спасибо.

ps Я знаю, что код в инструкции «If» – это дерьмо, я все еще работаю над этим. но код действительно работал в состоянии, когда оператор «if» находится сейчас.

 Sub Update_Last() Worksheets("5001 Prog").Unprotect "Welcome1" Worksheets("Drill Log").Unprotect "Welcome1" Dim w As Integer Dim x As Integer Dim y As Integer Dim z As String w = 39 x = Worksheets("Drill Log").Range("E39").Value y = Worksheets("Drill Log").Range("E39").Value z = Worksheets("Drill Log").Range("D39").Value If z = Worksheets("Variables").Range("H10").Value Then Do Until Not x = y y = Worksheets("Drill Log").Range("E" & w).Value w = w + 1 z = Worksheets("Drill Log").Range("D" & w).Value Loop ElseIf z = Worksheets("Variables").Range("H14").Value Then Do Until Not x = y y = Worksheets("Drill Log").Range("E" & w).Value w = w + 1 z = Worksheets("Drill Log").Range("D" & w).Value Loop Else w = w + 1 z = Worksheets("Drill Log").Range("D" & w).Value End If Dim count As Integer count = Application.WorksheetFunction.CountIfs(Worksheets("Drill Log").Range("Drill_Log[Pass Type]"), "Ream", Worksheets("Drill Log").Range("Drill_Log[Size]"), y) Dim daily As Integer daily = Application.WorksheetFunction.CountIfs(Worksheets("Drill Log").Range("Drill_Log[Pass Type]"), "Ream", Worksheets("Drill Log").Range("Drill_Log[Size]"), y, Worksheets("Drill Log").Range("Drill_Log[Foreman]"), Worksheets("5001 Prog").Range("B5").Value, Worksheets("Drill Log").Range("Drill_Log[Date]"), Worksheets("5001 Prog").Range("E4").Value) Worksheets("5001 Prog").Range("C12").Value = (y & "'' Ream") Worksheets("5001 Prog").Range("D12").Value = count * 31.5 Worksheets("5001 Prog").Range("E12").Value = daily * 31.5 Worksheets("5001 Prog").Protect "Welcome1" End Sub 

Давайте будем гением компьютера.