2017-10-10 21 views
0

J'ai une tâche très simple de vouloir tout rafraîchir sur le classeur (qui ne contient que 3 tables avec des données externes) et de le sauvegarder toutes les 5 minutes. J'ai actuellement le classeur en cours d'exécution d'une sauvegarde automatique toutes les 5 minutes via:Excel VBA: Actualiser tout et enregistrer

Sub SaveWb() 
    ThisWorkbook.Save 
    Application.OnTime Now + TimeValue("00:05:00"), "SaveWb" 
End Sub 

&

Private Sub Workbook_Open() 
    Application.OnTime Now + TimeValue("00:05:00"), "SaveWb" 
End Sub 

Et les tables en utilisant les propriétés rafraichit de connexion de fond rafraîchissement automatique en 5 minutes. Cependant, je rencontrais le problème où Excel susciterait: «? Cela annulera une actualisation des données en attente Continuer [OK] [Annuler] »

Je me demande si je peux avoir la mise à jour en cours d'exécution dans VBA aussi, donc ils peuvent bien fonctionner sans retarder les rafraîchissements. Bien que cela semble être un travail facile avec la fonction wb.RefreshAll mais ma compétence vba inexistante ne me permet pas de les mettre ensemble ....

Toute aide est très appréciée!

Répondre

0

J'ai expérimenté un peu et en éditant une partie du code et il fonctionne maintenant: «? Cela annulera une actualisation des données en attente Continuer »

Sub SaveWb() 
    ThisWorkbook.RefreshAll 
    ThisWorkbook.Save 
    Application.OnTime Now + TimeValue("00:05:00"), "SaveWb" 
End Sub 

Plus