¿Qué es una declaración vba?
Visual Basic para Aplicaciones (VBA) es un lenguaje de macros de Visual Basic, un lenguaje de programación desarrollado por Microsoft para realizar tareas comunes de automatización (OLE) en sus aplicaciones de escritorio. Se puede utilizar principalmente para ampliar la funcionalidad de las aplicaciones de Windows, especialmente el software de Microsoft Office. También se puede decir que es una especie de script básico para la visualización de aplicaciones. Este lenguaje fue desarrollado por Microsoft en 1993 como un lenguaje de automatización común para aplicaciones: Visual Basic For Application (VBA). De hecho, VBA es una versión parasitaria de las aplicaciones VB. La versión Excel 5.0 lanzada por Microsoft en 1994 ya tenía la función macro de VBA.
Declaraciones básicas para comenzar con VBA
Seleccione el libro de trabajo actualmente activo:
ThisWorkbook.Activate
Si selecciona otro libro de trabajo, tenga en cuenta que el libro debe estar abierto y no olvide agregar el sufijo ".xls", por ejemplo:
Windows("Totol.xls").Activar
Seleccionar una hoja de cálculo:
Hojas("Saldo").Activar.
Seleccionar celdas:
Rango("A1").Seleccionar
Seleccione celdas continuas:
Rango("A1:G8").Select
Seleccione celdas no consecutivas:
Rango("A1,B6, D9 ").Select
Range("A1,B6:B10,D9").Select
Mover entre celdas:
ActiveCell.Offset(13, 14 ).Select
Selección.Offset(-3, -4).Select
Rango("G8").Offset(-3, -4).Select p>
Nota: Puede definir una variable y usar desplazamiento para implementarla, por ejemplo:
varFreightRowsCount = Range("A1").CurrentRegion.Rows.Count
ActiveCell. Offset(varFreightRowsCount, 0).Select
Seleccione toda la hoja de trabajo:
Cells.Select
Seleccione el área donde se encuentra la celda actual (las filas vacías se encontrado) / hasta que la columna esté vacía):
Range("A1").CurrentRegion.Select
Seleccione filas o columnas:
Filas("1 "). Seleccione
Columnas("A").Seleccione
O:
ActiveCell.EntireRow.Select
ActiveCell.EntireColumn .Select
Seleccione varias filas/columnas adyacentes:
Columnas("A:C").Select
Filas("1:5").Select
Seleccione varias filas/varias columnas no adyacentes (Nota: a diferencia de seleccionar varias filas/múltiples columnas adyacentes, utilice "Rango" en lugar de "Columnas/Filas":)
Rango ("A:A, C:C, E:F").Seleccionar
Rango("1:1,5:6,9:9").Seleccionar
Seleccionar la celda actualmente activa hasta la última celda que no esté vacía:
Range("A1", Range("A1").End(xlDown)).Select
Range(ActiveCell , ActiveCell.End(xlDown)).Select
Seleccione la celda activa actual hasta la primera celda que no esté vacía:
Range("A32", Range ("A32") .End(xlUp)).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
Seleccione la celda activa actual a la derecha de las primeras celdas no vacías .
(Nota: es "xlTORight", no "xlRight" )
Range("A1", Range("A1").End(xltoRight)).Select
Range(ActiveCell , ActiveCell.End(xltoLeft)).Select
Seleccione la celda activa actual en la décima celda a la derecha.
Rango("A2", Rango("A2").Offset(0, 10)). Seleccione
Rango(ActiveCell, ActiveCell.Offset(0, 10)). Seleccionar
Seleccione la celda actualmente activa en la décima celda a la izquierda.
Rango("A20", Rango("A20").Offset(0, -10)).Seleccione
Rango(ActiveCell, ActiveCell.Offset(0, -10) ).Seleccionar
Seleccione la celda activa actual hasta la décima celda.
Rango("a2", Rango("a2").Offset(10, 0)). Seleccione
Rango(ActiveCell, ActiveCell.Offset(10, 0)). Seleccionar
Selecciona la celda actualmente activa hasta la décima celda.
Range("A1").End(xlDown).Offset(1, 0).Select
Selecciona la primera celda vacía de la fila:
Range("A1").End(xltoRight).Offset(0,1).Select
Cambiar el tamaño del área (de A1:B5 a A1:D10): (Nota: cambiar el área No expandirse hacia afuera, sino redefinir.
Es decir, "Selection.Resize(10, 4).Select " en lugar de "Selection.Resize(5, 2).Select "
La macro de Excel no puede registrar la primera celda movida a la acción de fila actual (. es decir, la acción de presionar el botón "Inicio"), la siguiente declaración puede hacerlo:
ActiveCell.Offset(0, -ActiveCell.Column + 1).Select
Vaya a la primera celda de la columna actual:
ActiveCell.Offset( -ActiveCell.Row + 1,0).Select
Si solo hay una condición y una acción, Puede utilizar la siguiente declaración:
If Selection.Value > 10 Then
Selection.Offset(1,0) = 100
End If
O más simple:
Si Selection.Value > 10 Then Selection.Offset(1,0) = 100
Si hay dos condiciones y dos acciones, puedes usar la siguiente declaración:
Si Selection.Value > 10 Entonces
Si Selection.Value = 12 Entonces
Selection.Offset(1,0) = 100
End If
Selection.Offset(1,0) = 20
End If
Cuando hay condiciones dobles (condiciones coexistentes) y una acción, puedes usar la siguiente declaración:
Si Selection.Value = 10 And Selection.Offset(0,1).Value = 20 Then
Selection.Offset (1 ,0) = 100
End If
Cuando hay condiciones dobles (condiciones opcionales) y una acción, puedes usar la siguiente declaración:
If Selection .Value = 10 O Selection.Offset(0,1).Value = 20 Entonces
Selection.Offset(1,0) = 100
Finalizar si
p>
Cuando solo hay una condición y dos acciones, puedes usar la siguiente declaración:
If Selection.Value > 10 Then
Selection.Offset(1, 0 ) = 100
Else
Selection.Offset(1,0) = 0
End If
Cuando hay más de una condición. Cuando cada condición va seguida de una acción diferente, puede utilizar la siguiente declaración:
Si Selection.Value = 1 Then
Selection.Offset(1, 0) = 10
ElseIf Selection.Value = 2 Entonces
Selection.Offset(1, 0) = 20
ElseIf Selection.Value = 3 Entonces
Selection.Offset(1, 0) = 30
ElseIf Selection.Value = 4 Entonces
Selection.Offset(1, 0) = 40
ElseIf Selection.Value = 5 Then
Seleccionar
ction.Offset(1, 0) = 50
End If
Cuando tenga que probar muchas condiciones, puede usar la instrucción Select Case en lugar de If Then..ElseIf. La sintaxis es la siguiente:
Sub test()
Seleccionar caso Selección.Valor
El caso es >= 85
Selección. Offset(0, 1) = "A"
El caso es >= 75
Selection.Offset(0, 1) = "B"
El caso es >= 65
Selection.Offset(0, 1) = "C"
El caso es >= 50
Selection.Offset(0, 1) = "D"
Caso más
Selection.Offset(0, 1) = "F"
Fin de selección
Fin de sub
El significado de esta declaración es: si el valor de la celda seleccionada es mayor que 85, el valor de la celda a la derecha es "A"... Cuando el valor de la celda seleccionada es menos de 50, el valor de la celda a la derecha es El valor es "F".