Как запускать макросы только при первом открытии файла Excel - PullRequest
0 голосов
/ 11 октября 2018

Я написал некоторый код VBA для моего листа Excel.Дело в том, что я хочу, чтобы он запускался только один раз, т. Е. Когда пользователь открывает его в первый раз.

, если он открывается во второй или более раз, я хочу, чтобы Excel открывался нормально без запуска этого кода VBA.,Как это сделать с помощью VBA или есть какая-либо особенность Excel?Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 24 июня 2019

Добавьте флаг в ячейку в Excel, когда Excel открывается каждый раз, код макроса проверяет, является ли значение в этой ячейке «1».Если «1», то Excel открывается впервые, в противном случае значение этой ячейки изменяется.

Ниже приведен код:

Sub Workbook_Open()

Worksheets("your_wsname").Activate

'to check if it the file is being opened for the first time
If Cells(100, 100).Value = "1" Then
'value is blank if opening file for the first time
'if for first time then following happens
Else
    'call your methods here
    'set flag value 1 in one of the methods
End If

End Sub
0 голосов
/ 11 октября 2018

Ниже код будет выполняться один раз в день, создал другой лист для записи событий, как я, создал временную шкалу в листе под названием «Запись событий», а затем разрешил моему макросу проверить значение ниже этой конкретной даты, если значение> 0, тогда макрос будетне выполнить.

Private Sub Workbook_Open()
    Dim Sh As Worksheet, i As Long, Cl As Long, Cntr As Long
    Set Sh = ThisWorkbook.Worksheets("Event Recording")

    Cl = Sh.UsedRange.Cells.Find(What:=Date).Column
    Cntr = Sh.Cells(2, Cl)

    If Cntr = 0 Then
        MsgBox "Hi"
    End If

    Sh.Cells(2, Cl) = Cntr + 1
End Sub
0 голосов
/ 12 октября 2018

Сохраните ваш код в XLSM (как необходимо, чтобы в нем был код).

  • Пользователь загружает этот код с вашего веб-сайта и открывает его
  • On_Open запускает
    • Код делает то, что в данный момент делает
    • Затем код сохраняет файл как XLSX , который автоматически удаляет весь код, поскольку код не может быть сохранен в формате XLSX
  • Вытирает руки, работа выполнена.
0 голосов
/ 11 октября 2018

Просто, дайте рабочему листу 2 определенное имя и используйте проверку макроса для этого имени в качестве своей первой задачи, если оно находит его, а затем завершается, если оно не находит его, запускайте остальную часть кода ...

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