Si je débogue (dans ce cas un assembly Visual Studio appelé par Excel) et que le code met à jour la feuille de calcul Excel, comment puis-je obtenir Excel pour redessiner la feuille/fenêtre en cours pendant une pause dans le débogueur?Comment actualiser Excel pendant le débogage
Répondre
Si vous appelez le processus croisé Excel (par exemple, via Automation), Excel doit afficher automatiquement les modifications au fur et à mesure que les appels sont effectués, sauf si vous définissez xlApp.ScreenUpdating = False
. Si tel est le cas, il est préférable d'utiliser une condition pour ne pas définir xlApp.ScreenUpdating = False
si vous utilisez le mode Déboguer lorsque vous avez configuré des points d'arrêt. Sinon, vous devrez définir xlApp.ScreenUpdating = True
à partir d'un autre processus (en utilisant GetObject()
, ou quelque chose de similaire, de sorte que vous pouvez saisir la même instance d'application Excel). Toutefois, si votre code est appelé en cours de traitement (par exemple, si votre code s'exécute en tant que complément), votre code est déclenché via une combinaison de raccourcis clavier, un bouton CommandBar, un rappel de contrôle de ruban ou le semblable. Dans ce cas, Excel est monothread et votre code arrête toutes les exécutions Excel. La seule chose que je pourrais penser, dans ce cas, serait d'utiliser "éditer et continuer", en ajoutant la ligne xlApp.ScreenUpdating = True
puis en entrant dans la ligne suivante. (N'oubliez pas de supprimer cette ligne par la suite, cependant!)
Si vous n'utilisez pas xlApp.ScreenUpdating = False
, alors je ne sais pas vraiment quel est votre problème, et vous devrez fournir plus de détails sur votre code ...
- 1. Comment afficher un DataTable pendant le débogage
- 2. Console lente à apparaître pendant le débogage
- 3. Comment définir le délai de transaction pendant l'application de débogage
- 4. WPF: Comment rafraîchir une fenêtre pendant le débogage?
- 5. Comment éviter les échecs du test pendant le débogage?
- 6. Délai d'expiration du service Web pendant le débogage Silverlight
- 7. Impossible d'afficher les valeurs des variables pendant le débogage
- 8. Javascript pendant le débogage n'est pas à jour
- 9. Comment puis-je voir le contenu des objets Qt pendant le débogage?
- 10. Comment voir le guid pendant le débogage du code VB dans VS2008?
- 11. Visual Studio 2008: Comment charger le code source pendant le débogage
- 12. Actualiser le contenu UltraCombo
- 13. Comment démarrer le débogage?
- 14. Comment faire pour modifier la langue de message d'exception Visual Studio en anglais pendant le débogage
- 15. Comment forcer l'éditeur de liens à inclure une fonction dont j'ai besoin pendant le débogage?
- 16. Comment recharger un UITableView pendant que je le regarde
- 17. Comment actualiser Winforms DataGridView?
- 18. Chemin physique de localhost Pendant VS 2008 Débogage
- 19. ne marchent pas dans le bloc itérateur pendant le débogage (C#)
- 20. Arrêtez le message IE8 "page Web a cessé de répondre" pendant le débogage
- 21. Netbeans 6.5: Changer une variable d'environnement pendant l'exécution/le débogage/le test?
- 22. Comment actualiser le code généré par le gabarit SubSonic T4?
- 23. Comment actualiser un formulaire d'accès
- 24. Comment actualiser un DataGrid WPF?
- 25. Éviter les internes Groovy/Grails pendant le débogage dans IntelliJ Idea
- 26. Comment utiliser l'outil de débogage WINDBG pour le débogage?
- 27. Comment puis-je actualiser toutes les tables pivotantes de mon classeur Excel avec une macro?
- 28. Comment obtenez-vous Excel pour actualiser les données sur la feuille à partir de VBA?
- 29. Actualiser tous les contrôles sur le formulaire
- 30. Actualiser le panneau de mise à jour
ne pouvait pas l'avoir mieux dit – Jon
Comme vous le faites remarquer correctement, comme Excel est un seul thread, être arrêté dans le débogueur empêche tout repeindre l'écran. J'utilise xlApp.ScreenUpdating = false, mais l'ajout de xlApp.ScreenUpdating = True & Step (même dans ce cas) ne résout pas le problème, et sans repeindre/rafraîchir je ne trouve pas de soln. – GalleySlave