Diferencia entre Select y Activate




Me preguntan en un foro la diferencia entre Select y Activate, ya que aparentemente se obtiene el mismo resultado, es así siempre y cuando nos estemos refiriendo a una sola hoja, este simple pos intenta aclarar la diferencia que existe, pero la misma parece muy delgada; la respuesta sobre cual es la diferencia entre Select y Activate, cuando se usa Select o Activate o bien Select vs Activate la encontrarás en las siguientes lineas.


Si quieres aprender o profundizar  sobre el manejo de hojas de Excel, te recomiendo que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores curso que he visto en internet.

MASTERCARD PAYONEER

Como se mencionó al inicio, para muchos es un dilema si utilizar Select o Activate, lo ideal es no usar ninguno de los dos ya que consume recursos y ralentiza la macro, pero en muchas ocasiones es necesario seleccionar o activar la celda u hoja, la diferencia que radica entre ambos conceptos es la cantidad.

Con Activate se puede seleccionar solamente una celda u hoja, en cambio con Select se pueden seleccionar varias celdas u hojas.

Veamos un par de ejemplos, si quisiéramos seleccionar la Hoja1 se podría usar el siguiente código

Sheets("Hoja1").Select

También para ello se puede utilizar Activate en vez de Select

Sheets("Hoja1").Activate

Lo anterior es lo que presta a la confusión y crea el dilema sobre cual es la diferencia entre ambos conceptos ya que de las dos formas se logra exactamente lo mismo; como ya adelantara la diferencia, es la cantidad, con el comando Activate se puede activar una celda u hoja a la vez solamente; en cambio con Select se pueden seleccionar varias celdas u hojas al mismo tiempo. 

Los códigos anteriores hacen referencia a una sola hoja por ende los dos métodos llevan al mismo resultado; la diferencia se presenta cuando se pretende o se requiere seleccionar más celdas u hojas a la vez, para ello se utiliza el siguiente código:

Sheets(Array("Hoja1", "Hoja2", "Hoja3")).Select

Si quisiéramos utilizar el código que se muestra a continuación, nos daría un error '438' en tiempo de ejecución, que menciona que el objeto no admite esta propiedad o método.

Sheets(Array("Hoja1", "Hoja2", "Hoja3")).Activate

Al principio se mencionó que utilizar Select o Activate ralentiza la macro y consume recursos, para copiar y pegar datos no es necesario recurrir a estos comandos ya que se puede simplificar el código y con ello hacer que la macro corra más rápido y consuma menos recursos, veamos un ejemplo de como copiar y pegar utilizando Select o Activate y otro evitando estos comandos, pero logrando el mismo resultado que es copiar un dato de una hoja en otra hoja del mismo libro.

Sub copia ()
Sheets("Hoja1").Select
Range("B2").Copy
Sheets("Hoja2").Select
Range("B2").PasteSpecial
End Sub

Si hiciéramos el copiado con la grabadora de macros el código generado es el siguiente:
Sub Macro1()
Sheets("Hoja1").Select
Range("B2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Hoja2").Select
Range("B2").Select
ActiveSheet.Paste
End Sub

Todo el código anterior se puede simplificar en un solo código, se copian los datos de la celda B2 de la Hoja 1 en la celda B2 de la Hoja2, sin necesidad de activar o seleccionar la hoja, lo que redunda en menor cantidad de código y por ende acelerar la ejecución de la macro.

Sub copia ()
Sheets("Hoja1").Range("B2").Copy Sheets("Hoja2").Range("B2")
End Sub



Concluyendo la respuesta a cual es la diferencia entre Activate o Select, o bien cuando usar Activate o Select, la solución viene dada por la cantidad de celdas u hojas que requerimos seleccionar para la macro, si es una, es indistinto usar Activate o Select, pero si se necesita seleccionar o activar varias hojas se utiliza Select, resumiendo muchas celdas pueden ser seleccionadas, pero activa puede estar una sola.



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends