2012-04-13 14 views

risposta

3

È un ciclo su dei fogli e può utilizzare la seguente sintassi:

If ActiveWorkbook.VBProject.VBComponents(sheetName).CodeModule.CountOfLines <> 0 Then 

sheetName essere il nome del foglio.

Per un utilizzo più avanzato, è necessario controllare questo page che fornisce esempi più avanzati.

+0

Ummm, che non funzionerà :) Vedi il link nel mio post –

+0

Ummm, l'ho appena testato e funziona per me (stampando 0 se non c'è codice e il numero di riga se c'è del codice). Mi manca qualcos'altro? – assylias

+1

Sì 2 cose :) 1) Guarda la mia ultima modifica nel mio post 2) Se hai selezionato "Richiedi dichiarazione variabile", allora il conteggio delle righe sarà sempre maggiore di 0 anche se non c'è codice perché avrà "Opzione esplicita" in cima. È tutto spiegato nel mio post sul blog. –

11

Ho risposto a una domanda recentemente in MSDN e alla fine ho scritto un post sul blog.

Topic: Controllare se un file di Excel dispone di una macro

link: http://www.siddharthrout.com/2012/04/12/check-if-an-excel-file-has-a-macro/

è quindi possibile utilizzare .VBComponents.Item(i).Name con .VBComponents.Item(i).Type per verificare quali "Fogli" hanno "macro" .

EDIT

Tecnicamente parlando ogni macro è un pezzo di codice ma non è necessario che ogni pezzo di codice è una macro. Quindi, se stai solo controllando i macro, vedi la prima parte del post del blog e se stai verificando la presenza di qualsiasi codice, guarda la seconda parte del post del blog.

+0

+1 LOL, Sì, ho ricordato quel post –

+0

+1 per la precisione imbattibile;) – assylias

+0

+1 bella risposta Sid – brettdj

Problemi correlati