Код, вызывающий ошибку времени выполнения относительно ActiveWorkbook. Не вызывайте в моем событии Workbook_Open () - PullRequest
0 голосов
/ 11 апреля 2019

В приведенном ниже коде у меня есть журнал, который хранит, когда люди открывают книгу.Когда он открывается и после сохранения журнала, я хочу сохранить его, чтобы информация не терялась.Некоторое время этот код работал нормально, но сейчас он выдает ошибку времени выполнения, когда я запускаю его сейчас: «1001 *

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

Код ниже

Option Explicit

'creating log sheet entry for when workbook is opened
Private Sub Workbook_Open()

    Dim uName As String
    Dim LastRow As Long

    uName = Environ("username")

    Sheet9.Unprotect ("Unprotect")

    LastRow = Sheets("Log Sheet").Range("A65536").End(xlUp).Row
    Sheets("Log Sheet").Cells(LastRow + 1, 1) = uName
    Sheets("Log Sheet").Cells(LastRow + 1, 2) = "Opened"
    Sheets("Log Sheet").Cells(LastRow + 1, 3) = Now()
    ThisWorkbook.Worksheets("Log Sheet").Range("A:A,B:B,C:C").EntireColumn.AutoFit

    Sheet9.Protect ("Unprotect")

    Worksheets("Permitting Summary by FY").Activate

    ActiveWorkbook.Save

End Sub

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

1 Ответ

0 голосов
/ 11 апреля 2019

Попробуйте:

Private Sub Workbook_Open()

    Dim wb As Workbook
    Dim uName As String
    Dim sPassword As String
    Dim LastRow As Long

    Set wb = ThisWorkbook
    uName = Environ("username")
    sPassword = "Unprotect"

    With wb.Worksheets("Log Sheet")
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Unprotect sPassword
        .Cells(LastRow + 1, "A").Value = uName
        .Cells(LastRow + 1, "B").Value = "Opened"
        .Cells(LastRow + 1, "C").Value = Now()
        .Range("A:C").EntireColumn.AutoFit
        .Protect sPassword
    End With

    wb.Worksheets("Permitting Summary by FY").Activate
    wb.Save

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