выполнение макросов на временном интервале в ms-project

#excel #vba #ms-office #ms-project

#excel #vba #ms-office #ms-project

Вопрос:

Я пытаюсь создать макрос для сохранения файла ms-project в определенном формате в заданном месте с заданным интервалом, пока приложение открыто. У меня это в основном работает, за исключением выполнения на интервальной части.

У меня было немного Google, и при использовании Excel или word вы можете использовать приложение.Метод OnTime и смещение по времени для вызова sub с требуемым интервалом. К сожалению, не похоже, что этот метод существует в MS-Project.

Есть ли альтернативный метод, который я могу использовать здесь, или я должен отказаться от этой идеи?

Комментарии:

1. Не можете ли вы использовать какое-то событие? Я предполагаю, что вы хотите сохранить файл только после выполнения определенного действия

2. Ну, идея заключалась в том, чтобы сохранять файл на (несколько) регулярной основе, чтобы его можно было использовать в качестве источника данных для другого приложения — это большой файл проекта, который обычно открыт весь день и редактируется с несколько нерегулярными интервалами. Учитывая, что операция сохранения довольно интенсивна, если она привязана к событию, тогда это должно быть что-то, что вряд ли будет запускаться часто. Я недостаточно знаю о vba / project, чтобы знать, с чего начать. На данный момент я все равно отказался от этой идеи, но спасибо за ваш ответ.

3. msdn.microsoft.com/en-us/library/office/dn254092.aspx выбирайте сами 🙂

Ответ №1:

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

 Public lastSave As Date


Private Sub Project_Change(ByVal pj As Project)


    If DateDiff("n", lastSave, Now()) > 1 Then ' Replace 1 with # of minutes between saves.
        Application.FileSave
        lastSave = Now()

    End If

End Sub
  

Комментарии:

1. Это действительно выглядит так, как будто это соответствует всем требованиям. На данный момент я действительно перешел к другим идеям, но спасибо!