Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cabe destacar que existe el valor Empty, el cual VBA lo trata como el valor
cero y se maneja igual que el cero para cualquier operación aritmética (fuera de
VBA).
VBA permite utilizar como operándos tipos numéricos distintos. Por ejemplo
podemos usar un “Byte” con un “Long” o con un tipo “Date”. Cuando se utilizan
tipos distintos, VBA cambia el menos preciso al tipo más preciso. Por ejemplo
2
Sub SumaConError()
Dim variable1, variable2 As Byte
variable1 = 10 + 20
MsgBox variable1
variable2 = 150 + 150
MsgBox variable2
End Sub
Resultado
Sirve para asignar el resultado de la sustracción entre dos números. Tiene dos
formas sintácticas:
Ejemplo:
Sub RestaFecha()
Dim variable1 As Date
variable1 = Worksheets("hoja1").Range("D3").Value -
Worksheets("hoja1").Range("F3").Value
MsgBox variable1
End Sub
Resultado
Sirve para asignar el resultado del producto de dos números. La forma en que
se usa es:
4
Empty * 3,45 = 0
Ejemplo
Sub Multiplicacion()
Dim variable1 As Long
variable1 = Worksheets("hoja1").Range("D5").Value *
Worksheets("hoja1").Range("F5").Value
MsgBox variable1
End Sub
Resultado
Ejemplo
Sub Division()
Dim variable1 As Double
variable1 = Worksheets("hoja1").Range("D6").Value /
Worksheets("hoja1").Range("F6").Value
MsgBox variable1
End Sub
Resultado
Ejemplo:
Sub Potencia()
Dim variable1 As Double
variable1 = Worksheets("hoja1").Range("D7").Value ^
Worksheets("hoja1").Range("F7").Value
MsgBox variable1
End Sub
Resultado
6
Sqr (16) = 4
Ejemplo
Sub DivisionEntera()
Dim variable1 As Double
variable1 = Worksheets("hoja1").Range("D7").Value \
Worksheets("hoja1").Range("F7").Value
MsgBox variable1
End Sub
Resutado
Otros Ejemplos:
8\3=2
14 \ 4 = 3
5 \ 0,23 = Error
Empty \ 3 = 0
Asigna el resto de una división entre dos números. Como en el caso anterior,
previamente realiza un redondeo a cero decimales de ambos operándos, si
estos tuvieran un valor distinto de entero. La forma de usarlo es:
variable1 = valor 1 Mod valor 2
7
Ejemplo
Sub DivisionResto()
Dim variable1 As Double
variable1 = Worksheets("hoja1").Range("D7").Value Mod
Worksheets("hoja1").Range("F7").Value
MsgBox variable1
End Sub
Resultado
Otros Ejemplos:
7 Mod 2 =1
8,9 Mod 7,2 = 1
Empty Mod 7,2 = 0
Ejemplos de Macros
No1
Sub SumaConError()
Dim Resultado As Byte
Resultado = 10 + 20
MsgBox Resultado
Resultado = 150 + 150
MsgBox Resultado
End Sub
No 2
Sub RestaFecha()
Dim Resultado As Date
Resultado = Worksheets("hoja1").Range("d3").Value -
Worksheets("hoja1").Range("f3").Value
MsgBox Resultado
End Sub
No3
Sub Multiplicacion()
Dim Resultado As Integer
Resultado = Worksheets("hoja1").Range("d4").Value *
Worksheets("hoja1").Range("f4").Value
8
MsgBox Resultado
End Sub
No 4
Sub UsoEmpty()
Dim Resultado As Double
Resultado = Empty * Worksheets("hoja1").Range("D5").Value
MsgBox Resultado
End Sub
No 5
Sub Potencia()
Dim Resultado As Double
Resultado = Worksheets("hoja1").Range("D7").Value ^
Worksheets("hoja1").Range("F7").Value
MsgBox Resultado
End Sub
No 6
Sub DivisionEntera()
Dim Resultado As Double
Resultado = Worksheets("hoja1").Range("D6").Value \
Worksheets("hoja1").Range("F6").Value
MsgBox Resultado
End Sub
No 7
Sub Mod1()
Dim Resultado As Double
Resultado = Worksheets("hoja1").Range("D10").Value Mod
Worksheets("hoja1").Range("F10").Value
MsgBox Resultado
End Sub
https://www.excel-avanzado.com/2379/operadores-matematicos-en-vba.html
Otros Conceptos
Los Operadores de comparación en VBA se usan para comparar dos
cantidades y el programa te muestra el resultado de la comparación en una
expresión de verdad; es decir, el resultado sera verdadero o falso (True or
False).
Expresión
Operador Significado condicional Descripción
https://www.excel-avanzado.com/2470/operadores-de-comparacion-vba.html
Operadores aritméticos
División
La división se utiliza para obtener la fracción de un número en términos de otra,
es decir, para dividir un número entre otro (evidente). En términos de VBA se
pueden diferenciar dos tipos de división:
así es como se llama a los valores que intervienen) pueden ser cualquier
tipo de número válido, con o sin decimales.
División decimal: Cuando queremos que el resultado de la operación sea
un número decimales, debemos utilizar la barra normal (/).
Mira este ejemplo. Si tengo dos variables, a =9 y b = 4, el resultado de los
dos tipos de división quedaría así:
a/b= 2,25
a\b=2
Mod
Para hallar el resto de una división, se utiliza el operador Mod. Este operador
divide un valor entre otro y muestra “sobrante” en forma de número decimal.
Concatenación
Cuando se habla de concatenar, se quiere decir unir dos o más valores. Para
unir tanto cadenas de texto como valores numéricos se utiliza el operador
ampersand (&). Esta unión se hace en el orden en el que se introducen los
operándos.
Sub ConcatenarCadenas()
Dim Nombre As String, Apellido As String
Dim ANomyApe As String
Nombre = “Luisc”
Apellido = “Luna”
NomyApe = Nombre & “ “ & Apellido
MsgBox (”Buenos días, ” & NomfApe)
End Sub
Resultado
Operadores de comparación
Los operadores de comparación se llaman también relacionales y comparan
valores y expresiones devolviendo siempre un resultado booleano:
verdadero o falso.
27 3 a>b Verdadero
35 7 a<b Falso
12 12 a=b Verdadero
12 12 a<>b Falso
Sub ComparaNumeros()
Dim a, b As Integer
a = InputBox("Introduce el primer número")
b = InputBox("Introduce el segundo número")
If a = b Then
MsgBox ("Los dos números son iguales")
Else
If a > b Then
MsgBox ("El primer número es mayor que el segundo")
Else
MsgBox ("El primer número es menor que el segundo")
End If
End If
End Sub
Cual Es el resultado
Operadores lógicos
Muchas veces los operadores de comparación por sí solos se quedan algo
cortos para algunas necesidades. Los operadores lógicos solucionan este
problema al permitir la combinación de varias expresiones simples para formar
una más compleja.
https://ayudaexcel.com/los-operadores-vba/
Los tres más utilizados. operadores logicos en Excel VBA son: Y, O Y NO.
Como siempre, usaremos ejemplos fáciles para aclarar las cosas.
Operador lógico y
Sub OperdoreLogicoY()
Dim score1 As Integer, score2 As Integer, result As String
score1 = Range("A2").Value
MsgBox score1
score2 = Range("B2").Value
MsgBox score2
If score1 >= 60 And score2 > 1 Then
result = "pass"
MsgBox result
Else
result = "fail"
MsgBox result
End If
End Sub
Cuál es el Resultado
Range("C1").Value = result
Operador lógico o
Sub OpreadorLogicoO()
Dim score1 As Integer, score2 As Integer, result As String
score1 = Range("A2").Value
MsgBox score1
score2 = Range("B2").Value
MsgBox score2
If score1 >= 60 Or score2 > 1 Then
result = "pass"
MsgBox result
Else
result = "fail"
MsgBox result
End If
Range("C1").Value = result
MsgBox result
End Sub
Cuál es el resultado
Conclusión: Excel VBA devuelve el pase porque score1 es mayor o igual a 60.
Operador lógico no
score1 = Range("A1").Value
score2 = Range("B1").Value
Else
result = "fail"
End If
Range("C1").Value = result
https://macerayarislari.com/es/300-examples/253-excel-vba-logical-
operators.html