Comment puis-je écrire dans la console à partir d'Excel vba code?
Est-il possible d'imprimer un message à la console à partir d'un fichier Excel macro vba? J'ai un petit VB .NET application console qui appelle une macro excel, et j'aimerais messages d'erreur dans le code de la macro pour imprimer à la console. Debug.l'impression n'aide pas, car il ne s'imprime dans la fenêtre exécution. Des idées?
C'est principalement parce que la Fenêtre est en effet la "console" pour applications VBA.
OriginalL'auteur froadie | 2010-01-26
Vous devez vous connecter pour publier un commentaire.
J'ai eu à utiliser de Débogage.Print() Debug.Write() et la Console.WriteLine() ne fonctionne pas
OriginalL'auteur tree
J'ai trouvé qu'il n'y a pas de communication entre un VB .Un projet de réseau et une macro qui appelle la macro ne peut pas accéder à la VB de la console, et il ne peut pas rejeter une exception. Si une erreur se produit dans la macro, il n'est pas détecté par le VB .NET code. Le projet VB appelle simplement la macro, il s'exécute, puis le projet continue en cours d'exécution, sans aucune connaissance de ce qui s'est passé dans la macro. La façon dont je suis arrivé, c'était que j'avais la macro écrire l'erreur spécifique de la cellule désignée dans la feuille de calcul Excel, puis le projet VB lu et utilisé pour déterminer s'il y avait une erreur, et puis l'écrire dans la console si il y était. Une sorte de tricher corriger le problème, mais cela a fonctionné. Merci pour toutes les suggestions!
OriginalL'auteur froadie
Vous pouvez essayer d'utiliser
Debug.WriteLine()
pour la production de vos informations de débogage à la Sortie de Visual Studio fenêtre, mais j'ai le sentiment tenace que vous ne pouvez pas le faire, sauf si vous écrivez une application Console.Si elle en fait ne fonctionne pas, essayez d'utiliser le
Console.SetOut()
méthode pour rediriger leConsole.WriteLine()
chaînes à un StreamWriter, qui peut être un fichier sur votre machine. Pas l'idéal, mais peut-être une solution viable?OriginalL'auteur Phil.Wheeler
Passer un chemin d'accès au fichier et écrire toutes les erreurs dans le fichier.
OriginalL'auteur ChaosPandion
Vous pouvez créer un composant COM dans votre VB.NET l'app que vous pouvez appeler à partir de VBA et à écrire à votre application console.
Dépend de la situation. Nous avons une .net application de certaines choses, puis lance des rapports excel. Les données de ces rapports est extrait par l'intermédiaire d'une interface COM à partir de VBA dans excel, de sorte que l'utilisateur peut personnaliser le rapport. Nous n'avons pas actuellement, mais je peux voir le temps quand on peut avoir pour afficher les mises à jour de statut à partir du rapport dans l'application principale qui a lancé les rapports.
OriginalL'auteur burnside
Pourquoi ne pas vous retourner une chaîne de caractères contenant les messages d'erreur à partir de la macro à la .Net code, et ont le .Net code de l'écrire dans la console?
Sinon, si ce sont vraiment des erreurs, d'élever les erreurs à partir de la macro à l'aide de
Err.Raise
et de les gérer dans le .Net code avec unTry Catch
bloc qui écrit les détails de la console.OriginalL'auteur MarkJ