У меня есть код, разработанный в инструменте, над которым я работаю, который выполняет некоторые базовые вычисления для добавления дат и т. Д. На основе изменения другой ячейки.Он отлично работает на листе, для которого он был создан, однако, когда я копирую его в другой модуль листа для аналогичной задачи (добавлены два дополнительных столбца), он, похоже, не работает.Я изменил ссылки, чтобы учесть два дополнительных столбца, и я не получаю никаких сообщений об ошибках, он просто не выполняет вычисления, которые он должен делать.Я новичок в VBA и просто не могу понять это.Заранее спасибо за помощь!
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo SelectError:
Oval = Target.Value
SelectError:
End Sub
Private Sub Worksheet_Change2(ByVal Target As Range)
If Not Intersect(Target, Range("G11:G202")) Is Nothing Then
On Error GoTo Eerror:
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect Password:="Password"
'Dim TarAddress As String
Range(Target.Address).Select ''''DO NOT DELETE, PREVENTS LOOP
If Range(Target.Address).Value <> 0 Then
Range(Target.Address).Offset(0, 1).Value = Date
'Update Budget
If Range(Target.Address).Offset(0, 5).Value = 0 Then
Range(Target.Address).Offset(0, 5).Value = Range(Target.Address).Value
End If
If Range(Target.Address).Value <> 0 Then
Range(Target.Address).Offset(0, 6).Value = Range(Target.Address).Value
End If
'Set Task Status to Not Started in Cancelled
If Range(Target.Address).Offset(0, 2).Value = "Cancelled" Then
Range(Target.Address).Offset(0, 2).Value = "Not Started"
End If
End If
Eerror:
ActiveWorkbook.Protect Password:="Password"
End If
If Not Intersect(Target, Range("I11:I202")) Is Nothing Then
On Error GoTo GError:
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect Password:="Password"
'Dim TarAddress As String
Range(Target.Address).Select ''''DO NOT DELETE, PREVENTS LOOP
'Mark Complete Date
If Range(Target.Address).Value = "Complete" Or Range(Target.Address).Value = "Complete w/ Issues" Then
Range(Target.Address).Offset(0, 2).Value = Date
Range(Target.Address).Offset(0, -2).Value = 0
End If
'Mark Start Date w/ Complete Date if Blank
If (Range(Target.Address).Value = "Complete" Or Range(Target.Address).Value = "Complete w/ Issues") And Range(Target.Address).Offset(0, 1).Value = "" Then
Range(Target.Address).Offset(0, 1).Value = Date
End If
'Mark Start Date
If Range(Target.Address).Value = "In Progress" And Range(Target.Address).Offset(0, 1).Value = "" Then
Range(Target.Address).Offset(0, 1).Value = Date
End If
'Mark Cancel Date
If Range(Target.Address).Value = "Cancelled" And Range(Target.Address).Offset(0, 8).Value = 1 Then
Range(Target.Address).Offset(0, 13).Value = Date
End If
GError:
ActiveWorkbook.Protect Password:="Password"
End If
End Sub
ETA: я не знаю, потому что это в листе по сравнению с модулем, но он не позволит мне пройти через код, чтобы попытаться отследить его,Пример того, чего я ожидаю, это то, что если я добавлю значение больше 0 в ячейку в столбце G, он обновит следующую ячейку до сегодняшней даты, скопирует и вставит это значение в ячейки 5 и 6 столбцови еще несколько вещей.Он не вносит никаких изменений, как это, когда я вводю значение, и не выдает сообщение об ошибке.Лист просто остается без изменений.