Come posso ottenere l'ID di processo dell'istanza di Excel corrente in cui è in esecuzione il mio codice VBA? Non voglio chiederlo con il nome nella didascalia, che causa problemi quando ho due o più istanze di Excel con la stessa didascalia.Come ottenere l'ID di processo dell'istanza di Excel corrente, tramite VBA, senza utilizzare la didascalia?
risposta
È possibile utilizzare questo metodo per ottenere l'id processo corrente.
Declare Function GetCurrentProcessId Lib "kernel32"() As Long
This page ha un buona panoramica di come esattamente si può fare in varie versioni di Excel.
Come n00b VBA, alcune altre cose non sapevo
L'istruzione Declare va in alto. VBA si lamenterà se l'istruzione declare è inserito dopo una dichiarazione sub
Ad esempio, questo funzionerà
Declare Function GetCurrentProcessId Lib "kernel32"() As Long Sub Update ... ... End Sub
Ma questo non funzionerà
Sub Update ... ... End Sub Declare Function GetCurrentProcessId Lib "kernel32"() As Long
Ecco come visualizziamo il PID in una messagebox in vbscript
Set app = CreateObject("Excel.Application") MsgBox("Excel PID is " + CStr(app.Run("GetCurrentProcessId")))
Spero che questo aiuti qualcuno
E perché è stato downvoted? Il downvoter può spiegare? – Shreyas
La mia soluzione in Excel 2013: in un nuovo modulo, ho aggiunto il seguente codice:
Private Declare Function GetCurrentProcessId Lib "kernel32"() As Long
Public Sub Test()
Debug.Print GetCurrentProcessId
End Sub
++ per mostrare 'Private' e un esempio completo. – mklement0
- 1. Connessione di Excel a PostgreSQL tramite VBA
- 2. Excel VBA corrente ottenga il mese
- 3. Come rinominare una tabella di accesso tramite VBA da Excel?
- 4. MD5 Funzione hash in excel senza utilizzare VBA
- 5. Come ottenere l'ora corrente in UTC da una macro VBA di Excel
- 6. Come ottenere l'anno corrente con Vba
- 7. Alternativa all'editor VBA di Excel?
- 8. Excel VBA: Come estendere un intervallo dato una selezione corrente
- 9. Avvio di TransactionScope da Excel VBA?
- 10. Come ottenere l'istanza di Excel o il CLSID di un'istanza di Excel utilizzando l'ID di processo?
- 11. Aggiunta di testo a una cella in Excel tramite VBA
- 12. Elimina foglio di lavoro in Excel tramite VBA
- 13. excel blocco congelamento vba senza selezionare
- 14. Come uccidere un processo senza ottenere un'eccezione di "processo terminato"?
- 15. VBA Excel: ottenere risultati per più celle
- 16. excel vba ottenere la riga, valore della cella da selection.address
- 17. Memoria mancanza di Excel VBA
- 18. Excel VBA: Errore 1004 WorksheetFunction 'Impossibile ottenere la proprietà Vlookup"
- 19. Identificazione di ComboBox VBA di Excel
- 20. Ridenominazione di file con Excel VBA
- 21. Errore VBA di Excel 2013
- 22. come ottenere un oggetto "Cell" in excel VBA
- 23. Come ottenere la dimensione di un intervallo in Excel
- 24. Come utilizzare l'associazione tardiva per ottenere l'istanza di Excel?
- 25. Lettura di macro VBA (o vbaProject.bin) di un file Excel senza aprirlo in MS Excel
- 26. Come ottenere un valore DateDiff in millisecondi in VBA (Excel)?
- 27. Excel VBA Tecniche di debug "fuori memoria"
- 28. Neo4j - Come ottenere la versione corrente tramite REST
- 29. Ottenere l'ID del processo dell'applicazione excel
- 30. Come ottenere il nome/percorso del file Excel in VBA
Opere grande; si noti che nei moduli oggetto VBA (ad esempio, in un modulo associato a una cartella di lavoro di Excel), è necessario anteporre la dichiarazione a 'Private'. – mklement0