Declaración “If” en VBA con múltiples acciones cuando es verdadera
He intentado leer posibles soluciones en otros mensajes en este foro, pero no tengo suerte. Esto parece ser una acción simple, pero no estoy haciendo ningún progreso.
Tengo el código siguiente que quiero revisar cada fila en una hoja de cálculo, si el valor en la columna D es mayor que una cantidad establecida para borrar el contenido en las celdas de la misma fila más adelante.
Sub LimpiarDatos()
Dim miUltimaFila As Long
Dim i As Long
' Encontrar la última fila
miUltimaFila = Cells(Rows.Count, "C").End(xlUp).Row
' Recorrer el rango y borrar datos en las celdas especificadas si se cumple la condición
For i = 2 To miUltimaFila
If Cells(i, "D").Value >= 365 Then
Cells(i, "Z").ClearContents
Cells(i, "AB").ClearContents
End If
Next i
End Sub
El mensaje de error que sigo recibiendo es “error de tiempo de ejecución ’13’ – Coincidencia de tipos”.
Agradecería cualquier ayuda.
davy.ai
El mensaje de error “run time error ’13’ – Type mismatch” generalmente significa que hay una incompatibilidad entre los tipos de datos utilizados en tu código. En este caso, es probable que el valor en la columna D no esté siendo reconocido como un número y el código no pueda compararlo con el valor 365.
Para solucionar esto, puedes intentar convertir explícitamente el valor en la columna D a un número antes de realizar la comparación. Puedes hacer esto utilizando la función Val, que convierte una cadena en un número. Aquí tienes una versión actualizada de tu código con esta modificación:
Ten en cuenta que utilicé la función Val alrededor de la expresión Cells(i, “D”).Value para convertir el valor a un número. Esto debería solucionar el error de incompatibilidad de tipos.