Некоторые незначительные исправления
Если вы не используете Option Explicit
(не рекомендуется), ошибки нет. Когда вы используете его, возникает ошибка компиляции, потому что x
не dim
med.
Строки, содержащие .formula
, должны быть изменены, потому что, например, данные будут изменены на дату, когда Вы снова открываете книгу, но вам нужна дата, когда был сделан сброс. Точно так же вам не нужна формула = "" в столбце, содержащем только значения.
Если вы хотите сделать то же самое для двух условий в операторе Select Case
, вы разделяете их запятой в тот же случай. Запятая означает Or
.
Если код остановится посередине, ScreenUpdating
останется False
. Сделайте некоторую обработку Error
.
Option Explicit
Sub Reset_Submitted_Document_HW_ALSTOM()
ActiveSheet.Unprotect
Dim answer As Long
Dim x As Long
answer = MsgBox("Do you want to reset the Submittted Document " _
& "for Sign Of Year? This is typically performed at year end to clear " _
& "the tracker.", vbQuestion + vbYesNo + vbDefaultButton2, _
"Reset Submitted Document Checkmark")
If answer <> vbYes Then MsgBox _
"No Updates have been made to the tracker.": GoTo ProgramExit
Application.ScreenUpdating = False
On Error GoTo ProgramError
For x = 1 To Cells(Rows.Count, "E").End(xlUp).Row
Select Case (Cells(x, 5))
Case "Reset Default Date", "Final Update"
Cells(x, 5) = "Reset Default Date"
Cells(x, 7) = Date ' Cells(x, 7).Formula = "=Today()"
Case "Final Action Taken SPD", "Populate Previous SPD"
Cells(x, 5) = "Populate Previous SPD"
Cells(x, 7) = ""
Case Else
Cells(x, 5) = "" 'Cells(x, 5).Formula = "="""""
End Select
Next
SafeExit:
Application.ScreenUpdating = True
ProgramExit:
ActiveSheet.Protect
Exit Sub
ProgramError:
MsgBox "An unexpected error occurred."
On Error GoTo 0
GoTo SafeExit
End Sub