VBA – Comodines
In this Article
Este tutorial demostrará cómo utilizar comodines en VBA.
Los comodines se utilizan en todos los lenguajes de programación y aplicaciones de bases de datos como SQL Server. Un comodín se puede definir como un símbolo que se utiliza para reemplazar uno o más caracteres en una cadena de texto. Por ejemplo, esta cadena de texto – «mo*» – encontrará las palabras mom, mouse, moose, mommy, etc.; mientras que esta cadena de texto «mo?» sólo encontrará la palabra mom, ya que el comodín ? sólo sustituye a un carácter.
Los comodines se utilizan con el operador Like , que es una alternativa más sencilla a VBA Regex.
Uso del Comodín Asterisco (*) en VBA
El comodín Asterisco (*) reemplaza uno o más caracteres en una cadena VBA.
Veamos el siguiente rango de celdas en Excel:
Mediante el uso de un comodín Asterisco en nuestro código VBA, podemos encontrar todos los nombres que comienzan con «M» y cambiar el color del texto a rojo.
Sub CompararM()
Dim x As Integer
For x = 3 To 8
If Range("B" & x).Value Like "M*" Then
Range("B" & x).Font.Color = vbRed
End If
Next x
End Sub
Por lo tanto, hemos recorrido el rango y encontrado todos los nombres de pila que empiezan por la letra M ya que nuestra cadena comodín es«M*»
El resultado de ejecutar el código anterior se muestra a continuación.
Si utilizáramos el comodín «Ma*», sólo cambiarían los nombres de B3 y B4.
Uso del Signo de Interrogación (?) en VBA
El signo de interrogación sustituye a un único carácter en una cadena VBA.
Considere los siguientes datos:
Podemos utilizar la cadena comodín «?im» para encontrar cualquier nombre de pila que termine en «im»
Sub Comparar_im()
Dim x As Integer
For x = 3 To 8
If Range("B" & x).Value Like "?im" Then
Range("B" & x).Font.Color = vbRed
End If
Next x
End Sub
El resultado de ejecutar este código se muestra a continuación:
Uso de [Lista de Caracteres] como Comodín
El ejemplo anterior puede modificarse ligeramente para permitirnos utilizar el signo de interrogación, además de una lista de caracteres permitidos. Por tanto, la cadena comodín puede modificarse a «?[e-i]m», donde el primer carácter puede ser cualquier cosa, el segundo tiene que ser un carácter entre e e i y la última letra tiene que ser el carácter «m». Sólo se permiten 3 caracteres.
Sub Comparar_ListaCaracteres()
Dim x As Integer
For x = 3 To 8
If Range("B" & x).Value Like "?[e-i]m" Then
Range("B" & x).Font.Color = vbRed
End If
Next x
End Sub
El resultado de este código sería:
Uso del Comodín Numeral (#) en VBA
El comodín numeral (#) sustituye a un solo dígito en una cadena VBA. Podemos hacer coincidir entre 0 y 9.
Sub CompararNumeros()
Dim x As Integer, y As Integer
For x = 3 To 8
For y = 2 To 5
If ActiveSheet.Cells(x, y) Like "##" Then
ActiveSheet.Cells(x, y).Font.Color = vbRed
End If
Next y
Next x
End Sub
El código anterior recorrerá todas las celdas del Rango («B3:E8») y cambiará el color del texto de una celda a ROJO si se encuentra un número de dos dígitos en esa celda.
En el ejemplo de abajo, el código sólo cambiará el número si el último número es un 9.
Sub CompararNumeros_9()
Dim x As Integer, y As Integer
For x = 3 To 8
For y = 2 To 5
If ActiveSheet.Cells(x, y) Like "#9" Then
ActiveSheet.Cells(x, y).Font.Color = vbRed
End If
Next y
Next x
End Sub