Es mejor usar Cells o Range en Excel vba

Por ejemplo, hay alguna diferencia entre Range("A1") y Cells(1,1)

1 Respuesta

Respuesta
3

En teoría no, en la practica si que la hay. Al grano: la función Cells es mas rápida que Range.

Te explicare por que, y luego te lo demostraré.

A los lenguajes de programación les gustan mas los números que las letras DEFINITIVAMENTE.

A la función Cells se le pasan 2 integers, mientras que a Range se le pasa un String (todo lo que va entre comillas es un String) Así que, el compilador primero tiene que leer el String "A1" entender que significa esa A, darse cuenta que se refiere a la columna 1 y hacer la conversión correspondiente. Esos pasos se ahorran en la función Cells.

En un proyecto real, hecho por un programador serio, siempre veras Cells. El método Range solo debería usarse para motivos ilustrativos y educativos ya que es mas fácil de leer para personas que están aprendiendo.

Ahora te demostrare que lo que digo es correcto. Puedes comprobar cuanto demora cada método en ejecutar la misma tarea usando la siguiente macro y teniendo activa la Ventana Inmediata:

Sub test()
Dim cronometro As Double
Dim s As String
Dim i As Long
cronometro = Timer
For i = 1 To 10 ^ 5
    s = Range("A1").Value
    's = Cells(1, 1).Value
Next i
Debug.Print Timer - cronometro
End Sub

Primero comenta una de las lineas s = Cells... o s = Range... y descomenta la otra, ejecuta, luego invierte el comentario y vuelve a ejecutar. En la ventana inmediata mostrara los resultados en mili segundos. Estos son los míos que acabo de probar:

0.22 con Cells

0.39 con Range

PD: Si obtienes resultados que contradigan mi teoría déjame saber jajaja

Andy

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas