2012-04-13 8 views

Respuesta

3

Puede bucle sobre las hojas y utilice la siguiente sintaxis:

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

sheetName ser el nombre de la hoja.

Para un uso más avanzado, debe marcar page que proporciona ejemplos más avanzados.

+0

Ummm, eso no funcionará :) Ver el enlace en mi publicación –

+0

Ummm, acabo de probarlo y funciona para mí (imprime 0 si no hay código y el número de línea si hay algún código). ¿Me estoy perdiendo algo más? – assylias

+1

Sí 2 cosas :) 1) Ver mi última edición en mi publicación 2) Si tiene marcada "Requerir declaración de variable", el recuento de líneas siempre será mayor que 0 aunque no haya código porque tendrá "Opción explícita" en la parte superior. Todo está explicado en mi blog. –

11

Respondí una pregunta recientemente en MSDN y al final escribí una publicación de blog en ella.

Tema: Comprobar si un archivo de Excel tiene una macro

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

A continuación, puede utilizar .VBComponents.Item(i).Name con .VBComponents.Item(i).Type para comprobar qué "Hojas" tienen "macros" .

EDITAR

Técnicamente hablando cada macro es una pieza de código pero no es necesario que cada pieza de código es una macro. Entonces, si solo está buscando macros, vea la primera parte de la publicación del blog y, si está buscando un código, mire la segunda parte de la publicación del blog.

+0

+1 LOL, Sí, recuerdo esa publicación –

+0

+1 por la precisión inigualable;) – assylias

+0

+1 buena respuesta Sid – brettdj

Cuestiones relacionadas