Esiste un modo per stampare un messaggio sulla console da una macro vba di Excel? Ho una piccola applicazione di console VB .NET che chiama una macro excel e mi piacerebbe che i messaggi di errore dal codice macro stampassero sulla console. Debug.print non aiuta poiché stampa solo nella finestra immediata. Qualche idea?Come posso scrivere sulla console dal codice vba di Excel?
risposta
Ho trovato che non c'è comunicazione tra un progetto VB .NET e una macro che chiama: la macro non può accedere alla console di VB e non può restituire un'eccezione. Se si verifica un errore nella macro, non viene rilevato dal codice VB .NET. Il progetto VB chiama solo la macro, esegue, e quindi il progetto continua a funzionare, senza sapere cosa è successo nella macro. Il modo in cui mi sono aggirato su questo era che avevo la macro scrivere l'errore in una cella specifica designata nel foglio di calcolo di Excel, e poi il progetto VB lo leggeva e lo usava per determinare se c'era un errore, e poi lo scriveva al console se c'era. Una specie di trucco, ma ha funzionato. Grazie per tutti i suggerimenti!
Passare un percorso di file e scrivere tutti gli errori nel file.
È possibile provare a utilizzare Debug.WriteLine()
per inviare le informazioni di debug alla finestra di Visual Studio Output, ma ho la sensazione fastidiosa che non si possa fare a meno che non si stia scrivendo un'applicazione Console.
Se effettivamente non funziona, provare a utilizzare il metodo Console.SetOut()
per reindirizzare le stringhe a un StreamWriter, che potrebbe essere un file sul proprio computer. Non l'ideale, ma forse una soluzione praticabile?
È possibile creare un componente COM nell'app VB.NET che è possibile chiamare da VBA e scrivere nella console dell'applicazione.
Ne vale la pena? Io non la penso così – ChaosPandion
Dipende dalla situazione. Abbiamo un'applicazione .net che fa un po 'di roba quindi lancia rapporti Excel. I dati per i report vengono recuperati tramite un'interfaccia COM da VBA in Excel in modo che l'utente possa personalizzare il report. Al momento non lo facciamo, ma posso vedere il momento in cui potremmo dover visualizzare gli aggiornamenti di stato dal report nell'app principale che ha lanciato i report. – burnside
Perché non si restituisce una stringa contenente i messaggi di errore dalla macro al codice .Net e il codice .Net lo scrive nella console?
In alternativa, se si tratta di errori reali, generare errori dalla macro utilizzando Err.Raise
e gestirli nel codice .Net con un blocco Try Catch
che scrive i dettagli sulla console.
ho dovuto usare Debug.Print() come Debug.Write() e Console.WriteLine() non ha funzionato
- 1. VBA Excel - leggere il valore della cella dal codice
- 2. Come scrivere sulla console in fasm?
- 3. Come scrivere una raccolta VBA su un foglio Excel
- 4. Excel vba - xlDown
- 5. Come posso scrivere in un file di testo in modo affidabile da Excel VBA?
- 6. Come posso acquisire un errore di debug VBA di Microsoft Access dal mio codice C#?
- 7. Scrittura del codice VBA di Excel in Visual Studio
- 8. Excel vba refresh wait
- 9. matrice in Excel VBA
- 10. Excel VBA salvare screenshot
- 11. Scrittura sulla console delle rotaie
- 12. Excel VBA - uscita per loop
- 13. Memoria mancanza di Excel VBA
- 14. Il modo migliore per proteggere il codice VBA di Excel?
- 15. Errore VBA di Excel 2013
- 16. Funzione array in Excel VBA
- 17. Excel VBA a C#
- 18. Come spingere un'operazione sulla pila di annullamento di Excel?
- 19. Difficoltà nella lingua VBA di Excel
- 20. Eclipse scrive sulla console
- 21. Come continuare il codice sulla riga successiva in VBA
- 22. Bug in VBA DateValue() in VBA Excel?
- 23. Alternativa all'editor VBA di Excel?
- 24. Identificazione di ComboBox VBA di Excel
- 25. Come posso creare, leggere, scrivere un excel a livello di codice senza aver installato l'ufficio?
- 26. Rimuovere tutti i moduli VBA dal file excel?
- 27. Android: Come posso stampare una variabile sulla console di eclipse
- 28. Il modo migliore per scrivere sulla console in PowerShell
- 29. Come chiamare metodi .NET da Excel VBA
- 30. Come impostare un test dell'unità in VBA Excel Macro?
Questo è principalmente perché la finestra immediata è in vigore la "console" per le applicazioni VBA. –