запустить макрос при открытии книги - PullRequest
0 голосов
/ 29 ноября 2018

Я сделал поиск.Наиболее релевантный предлагает имя макроса «workbook_open», но я все равно должен вручную вызвать модуль.Вот что я кодировал.(Любые другие предложения приветствуются, так как это мой первый скрипт vba - в возрасте 73 лет)

Sub Workbook_Open()  
  Dim lastRow As Long     'last row with data  
  Dim thisDate As Double  'start timestamp  
  thisDate = Now()  
  With Sheets("Pressure Log")  
    lastRow = .Range("B" & .Rows.Count).End(xlUp).Row 'populate next row with date/time  
    Range("B" & lastRow).Offset(1) = Format(thisDate, "dddd")  
    Range("B" & lastRow).Offset(1, 1) = Format(thisDate, "mm/dd/yyyy")  
    Range("B" & lastRow).Offset(1, 2) = Format(thisDate, "hh:mm AM/PM")  
    Range("B" & lastRow).Offset(1, 3).Select 'position for user data  
  End With  
End Sub  

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Помимо ответа Матье, есть еще один способ запуска кода при открытии книги: вы можете создать Auto_Open процедуру в стандартном модуле. Предупреждение! Эта функция может быть удалена в следующих версиях Office, однако она все еще жива!100

В стандартном модуле:

Sub Auto_Open()
    ' Your code
End Sub

Таким же образом вы можете использовать Auto_Close процедуру вместо BeforeClose обработчика событий.

0 голосов
/ 29 ноября 2018

В редакторе Visual Basic (VBE) откройте Project Explorer (Ctrl + R), затем дважды щелкните модуль ThisWorkbook (или щелкните его правой кнопкой мыши и выберите «Просмотр кода»).):

ThisWorkbook in the VBE's Project Explorer

Это вызовет код модуля ThisWorkbook .ThisWorkbook представляет рабочую книгу, в которой находится ваш проект VBA;это специальный тип модуля, который наследует всех членов класса Excel.Workbook, который может представлять любую книгу Excel.

В верхней части панели кода вы увидите два раскрывающихся списка:

code pane

Выберите Workbook из раскрывающегося списка слева;VBE генерирует обработчик события для события Open, автоматически:

Workbook_Open() procedure created

Обратите внимание на выпадающий список справаговорит Open - если вы щелкнете по этому раскрывающемуся списку, вы увидите, что в нем перечислены все события , которые Workbook может обработать;выбор одного из них автоматически сгенерирует метод с правильной сигнатурой / прототипом для него.

Теперь возьмите свой код и поместите его в обработчик событий , сохраните - и все готово!В следующий раз, когда эта книга откроется с включенными макросами, будет вызван этот обработчик событий, и ваш макрос запустится.

Веселитесь!Учиться никогда не поздно!

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