2012-09-06 15 views
5

Por ahora tengo mi libro de trabajo configurado de esta manera, en donde el libro de trabajo está codificado en el comando Establecer, me pregunto si hay una manera de hacerlo así puedo tenerlo donde es fluido? Así que no importa dónde se coloque este código (en otro libro de trabajo), el código se adaptará a su nuevo entorno.Valor de configuración del libro activo en Excel VBA

¿Tiene esto sentido?

Debajo está lo que estoy utilizando ahora, lo que quisiera hacer es hacer para el ActiveWorkbook o algo del tipo ser utilizado en su lugar. Dado que esto se establecerá al comienzo del código y no en el medio.

Set wbOOR = Application.Workbooks("Open Order Report.xlsm")

Respuesta

20

usted está probablemente después Set wbOOR = ThisWorkbook

Solo para aclarar

ThisWorkbook se refieren siempre al libro del código reside en

ActiveWorkbook se referirá al libro que está activo

Ten cuidado como tu esto cuando se trata de múltiples libros de trabajo. Depende realmente de lo que quiere lograr y cuál es la mejor opción.

+0

+1 para explicar la diferencia y cuándo y dónde puede ser más apropiado, especialmente porque el OP es un poco vago. –

+1

Personalmente, nunca utilizo 'ActiveWorkbook' excepto para capturar eventos de la GUI del usuario y aún así intentar y evitar. – user3357963

+3

Estoy de acuerdo. Tiendo a configurar todos los libros de trabajo que necesito para variables como 'Set wkbMain = ThisWorkbook o Workbooks (" Main ")' 'Set wkbProcess = Workbooks (" Process ")' Luego uso referirme a ellos según sea necesario. Encuentra que es la forma más segura de ir, ya que 'ActiveWorkbook' puede ser peludo y disparar el código cuando menos se espera. –

2

Esto es todo lo que necesita

Set wbOOR = ActiveWorkbook 
+0

Creo que ooo lo tiene ... –

+0

Eso es todo? Ya sabes, después de llegar tan lejos con Excel VBA, hay tantas maneras en que puedo hacer las cosas, parece que a veces olvido las formas más simples a veces. ¡Gracias! –

+0

Volver a leer su pregunta No estoy seguro de si es ActiveWorkbook o Thisworkbook lo que usted busca. –

0

probar esto.

Dim Workbk as workbook 
Set Workbk = thisworkbook 

Ahora todo lo que programe se aplicará solo para su macro libro de trabajo.

Cuestiones relacionadas