Está en la página 1de 3

11. Otro caso muy frecuente, el uso de "" en lugar de la variable vbNullString, mucho más efectiva.

Mejor usar

If Range("A1").Value = vbNullString Then


'...
Else
'...
End If
en lugar de

1 If Range("A1").Value = "" Then


2 '...
3 Else
4 '...
5 End If

Emplear la propiedad .Calculation para evitar el recálculo de las operaciones de nuestra hoja:

view source
print?

1 Application.Calculation=xlCalculationManual
2 '... nuestro código VBA...
3 Application.Calculation=xlCalculationAutomatic
4 'o bien antes de cerrar el libro
5 Application.CalculateBeforeSave=True

3. Cuando sea posible usar la instrucción WITH...END WITH:


1 With MyLabel
2 .Height = 2000
3 .Width = 2000
4 .Caption = "Esta es mi etiqueta"
5 End With

4. Liberar memoria cuando definamos variables con objeto:

view source
print?

1 Dim wsHoja as Worksheet


2 'Definimos la variable objeto
3 Set wsHoja = Hoja1
4 '... nuestro código VBA...
5 'Liberamos la memoria
6 Set wsHoja = Nothing

No seleccionar un rango para trabajar sobre él, si no es estrictamente necesario:

view source
print?

1 Range("C13").Font.Bold = True
2 'mucho mejor que...
3 Range("C13").Select
4 Selection.Font.Bold=True

Evitar Copiar y Pegar (Copy and Paste), empleando otras instrucciones similares, pero algo más
eficientes. Por ejemplo, es mejor usar:

view source
print?

1 Range("A1:A13").Copy Destination:=Range("B1")
2 'O si únicamente necesitamos los valores:
3 Range("B1:B13").Value= Range("A1:A13").Value

Otra forma muy útil cuando trabajamos con eventos sobre nuestras hojas o libros (o controles),
desactivar los Events al inicio de nuestra programación y activarlos de nuevo al final:

view source
print?

1 Application.EnableEvents = False
2 '... nuestro código VBA...
3 Application.EnableEvents = True
Inicio

Application.screenupdating=False
Application.calculation=xlCalculationManual
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks = False

final

Application.CutCopyMode = False

Application.screenupdating=True
Application.calculation=xlCalculationAutomatic
Application.EnableEvents=True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False

También podría gustarte