Ошибка выполнения 1004 при выходе с листа для копирования - PullRequest
0 голосов
/ 12 февраля 2020

Код ниже копирует данные с одного листа на лист "LogDetails". Это обычно работает без проблем, за исключением случаев, когда я go на лист "LogDetails", а затем оставить его. Я получаю

Ошибка выполнения 1004

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

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Name <> "LogDetails" Then
    Sheets("LogDetails").Unprotect
    Application.EnableEvents = False
    Sheets("LogDetails").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = Target.Address(0, 0)** Error hits here
    Sheets("LogDetails").Range("A" & Rows.Count).End(xlUp).Offset(0, 1).Value = Target.Value
    Sheets("LogDetails").Range("A" & Rows.Count).End(xlUp).Offset(0, 2).Value = Environ("username")
    Sheets("LogDetails").Range("A" & Rows.Count).End(xlUp).Offset(0, 3).Value = Now



 Sheets("LogDetails").Columns("A:D").AutoFit
 Application.EnableEvents = True


 End If
 End Sub

Рекомендуемые изменения:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim shL As Worksheet

Set shL = Sheets("LogDetails")

If ActiveSheet.Name <> "LogDetails" Then
    shL.Unprotect
    Application.EnableEvents = False
    shL.Range("A" & shL.Rows.Count).End(xlUp).Offset(1, 0).Value = Target.Address(0, 0) **error hits here still
    shL.Range("A" & shL.Rows.Count).End(xlUp).Offset(0, 1).Value = Target.Value
    shL.Range("A" & shL.Rows.Count).End(xlUp).Offset(0, 2).Value = Environ("username")
    shL.Range("A" & shL.Rows.Count).End(xlUp).Offset(0, 3).Value = Now


 shL.Columns("A:D").AutoFit
 Application.EnableEvents = True


 End If
 End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...