Я поискал. Наиболее актуальным предлагается имя макроса «workbook_open». Но я все равно должен вызывать модуль вручную. Вот что я закодировал. (Любые другие предложения приветствуются, так как это мой первый сценарий vba — в возрасте 73 лет)
Sub Workbook_Open () Dim lastRow As Long 'последняя строка с данными Dim thisDate As Double' отметка времени начала thisDate = Now () With Sheets ("Журнал давления") lastRow = .Range ("B" & .Rows.Count) .End (xlUp) .Row 'заполнить следующую строку датой/временем Range ("B" & lastRow) .Offset (1) = Формат (thisDate, "dddd") Диапазон ("B" & lastRow) .Offset (1, 1) = Формат (thisDate, "мм/дд/гггг") Диапазон ("B" & lastRow) .Offset (1, 2) = Format (thisDate, "чч: мм AM/PM") Диапазон ("B" и lastRow) .Offset (1, 3) .Select 'позиция для пользовательских данных End With End Sub
В Visual Basic Editor (VBE), откройте Project Explorer (Ctrl + R), затем дважды щелкните модуль ThisWorkbook
(или щелкните его правой кнопкой мыши и выберите » Просмотреть код «):
Th at вызовет код программной части модуля ThisWorkbook
. ThisWorkbook
представляет книгу, в которой размещен ваш проект VBA; это специальный тип модуля, наследующий все члены класса Excel.Workbook
, который может представлять любую книгу Excel.
В верхней части панели кода вы увидите два раскрывающихся списка:
Выберите Workbook
в раскрывающемся списке слева; VBE автоматически генерирует процедуру обработчика событий для события Open
:
Обратите внимание на то, что в правом раскрывающемся списке теперь указано Открыть
— если вы щелкните это раскрывающееся меню, вы найдете что в нем перечислены все события , которые может обработать Workbook
; выбор одного из них автоматически сгенерирует для него метод с правильной сигнатурой/прототипом.
Теперь возьмите свой код и поместите его в эту процедуру обработчика событий , сохраните — и все готово! В следующий раз, когда эта книга будет открыта с включенными макросами, этот обработчик событий будет вызван, и ваш макрос будет запущен.
Удачи! Учиться никогда не поздно!

-
Вот и все. благодаря. Похоже, это фундаментальная грамотность, которой я должен был обладать. Не могли бы вы предложить «дальнейшее чтение»? — grNadpa 29 нояб., В 19:12
-
2@grNadpa различные блоги Excel-Easy — это один, Chip Pearson — тоже довольно популярный ресурс. У меня тоже есть свой блог, но он более продвинутый, объектно-ориентированный (хотя Rubberduck может помочь найти ряд проблем с кодом, но есть ряд ошибок и пара проверок false положительные моменты, которые могут вас сбить с толку). Моя личная рекомендация — изучить все, нажать все кнопки, посмотреть, что все делает — вы действительно ничего не можете сломать 😉 — Матье Гуиндон 29 нояб., 19:19
-
Ну … вы может что-нибудь сломать, но нужно очень много работать, чтобы это сломалось. — FreeMan 29 нояб., В 19:26
-
Является ли code-behind термином, заимствованным для другого языка? Свободный термин, используемый в разных языках? Панель кода более общего термина? + — QHarr 13 сен ’19 в 09:48
В редакторе Visual Basic (VBE) откройте Project Explorer (Ctrl + R) , затем дважды щелкните модуль ThisWorkbook
(или щелкните его правой кнопкой мыши и выберите «Просмотреть код»):
Это вызовет код программной части модуля ThisWorkbook
. ThisWorkbook
представляет книгу, в которой размещен ваш проект VBA; это специальный тип модуля, наследующий все члены класса Excel.Workbook
, который может представлять любую книгу Excel.
В верхней части панели кода вы увидите два раскрывающихся списка:
Выберите Workbook
в левом раскрывающемся списке; VBE автоматически генерирует процедуру обработчика событий для события Open
:
Обратите внимание на то, что в правом раскрывающемся списке теперь написано Открыть
— если вы щелкните это раскрывающееся меню, вы Вы обнаружите, что в нем перечислены все события , которые Workbook
может обработать; выбор одного из них автоматически сгенерирует для него метод с правильной сигнатурой/прототипом.
Теперь возьмите свой код и поместите его в эту процедуру обработчика событий , сохраните — и все готово! В следующий раз, когда эта книга будет открыта с включенными макросами, этот обработчик событий будет вызван, и ваш макрос будет запущен..
Удачи! Учиться никогда не поздно!
В дополнение к ответу Мэтью есть еще один способ запустить код при открытии книги: вы можете создать процедуру Auto_Open
в стандартном модуле. Внимание! Эту функцию можно удалить в следующих версиях Office, но она все еще работает! 😉
В стандартном модуле:
Sub Auto_Open () 'Your codeEnd Sub
В таким же образом вы можете использовать процедуру Auto_Close
вместо обработчика событий BeforeClose
.

В дополнение к ответу Матье есть еще один способ запустить код при открытии книги: вы можете создать Auto_Open
процедура в стандартном модуле. Внимание! Эту функцию можно удалить в следующих версиях Office, но она все еще работает! 😉
В стандартном модуле:
Sub Auto_Open () 'Your codeEnd Sub
В таким же образом вы можете использовать процедуру Auto_Close
вместо обработчика событий BeforeClose
.