Eliminar datos presentes en una planilla mediante la utilización de arreglos

Quería consultar sobre como plantear un código que me diga si esta variable no se encuentra en este arreglo elimínala, ejemplo:

Tengo un arreglo con números de 1 al 4, y tengo una celda que vale 5, entonces quiero decirle al VBA, 'Si el valor de esta celda no se encuentra en este arreglo, elimina dicho valor'.

2 respuestas

Respuesta
1

Un ejemplo siguiendo las pautas que mencionas:

Sub Pruebadematriz()
Dim numeros() As Variant
Dim x As Long
numeros = Array(1, 2, 3, 4)
For x = LBound(numeros) To UBound(numeros)
    If Range("A1").Value = numeros(x) Then
        MsgBox "El valor existe, chao"
        Erase numeros
        Exit Sub
    End If
Next x
MsgBox "El valor no existe"
Range("A1"). ClearContents
Erase numeros
End Sub

Comentas

Abraham Valencia

PD: Hay más formas de hacerlo con matrices/arreglos por si acaso

Buscaba otra manera de hacerlo sin recorrer el arreglo con un For, pero gracias igual

Hay dos formas: O recorrer todo con un bucle o... comparar uno por uno los valores, lo que haría el código probablemente largo y engorroso de trabajar.

Abraham Valencia

Respuesta
-1

No es más que una condición if la que ocupas por ejemplo:

valor=range("a1")
if valor>4 or valor<1 then range("a1")=""

Ese era un ejemplo no una situación real, estoy trabajando con ID's variables y la idea es meter los vigentes en un arreglo desde un Excel para después, en otro, que tiene muchísimos más ID's clasificar cuales pertenecen al área correspondientes al valor de mis arreglos y cuales no.

Ejemplo de Python:

lista = [2,4,6,8,10]

numero = 3

if numero not in lista:

Print("numero es impar")

Donde el 'not in' evalúa si numero no esta en la lista. No se como hacer eso en el VBA.

Checa esta imagen, supongo que esto es lo que quieres, la próxima vez que pidas ayuda se más especifico, somos expertos en Excel no adivinos.

Sub ejemplo()
lista = "2,4,6,8,10"
numero = 3
separa = Split(lista, ",")
x = 0
For i = 0 To UBound(separa)
    If numero = Val(separa(i)) Then x = x + 1
Next i
If x = 0 Then MsgBox ("numero " & numero & " no encontrado en la lista")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas