J'essaie d'ouvrir une série de feuilles de calcul Excel en utilisant une instance d'Excel créée à l'intérieur d'un module dans une base de données Access. Je peux obtenir les fichiers pour ouvrir correctement; Toutefois, l'appel réel pour démarrer Excel prend un certain temps, et pour ouvrir les fichiers prend encore plus de temps. L'emplacement des fichiers n'a pas d'importance (même heure d'ouverture sur un disque dur local en tant que lecteur réseau).VBA File Open est lente
Pour tenter de comprendre ce qui prenait si longtemps, j'ai ajouté une minuterie au module de journalisation. L'ouverture des fichiers prend environ 2m30, pendant laquelle l'application hôte (Access) ne répond absolument pas aux entrées de l'utilisateur); le reste du script s'exécute en moins de 10 secondes.
J'utilise l'appel standard Excel.Workbooks.Open
comme suit
Set OpenSpreadsheet = Excel.Workbooks.Open(Name, 2, False)
En utilisant des méthodes Debug.Print
autour de cette ligne dit qu'il peut prendre jusqu'à 2 1/2 minutes pour cette une ligne à exécuter.
Y at-il quelque chose que je peux faire pour ouvrir les fichiers Excel plus rapidement?
EDIT: Lors de l'ouverture, UpdateLinks
est False
et ReadOnly
est True
; toutes les autres options sont laissées à leurs valeurs par défaut.
Si vous ajoutez du code pour montrer comment vous ouvrez vos documents, + quelles références vous définissez, il sera plus facile de répondre. Mais à coup sûr, tout ce qui dépasse 10 sec. est trop long. –
D'accord, + 1 ... Besoin de voir les méthodes. – Smandoli
J'ai ajouté l'appel que je fais et j'ai noté le temps nécessaire à l'exécution d'une seule ligne. –