visual macro isempty funcion empty check excel-vba vba excel

excel vba - macro - ¿Cuál es la diferencia entre=Empty e IsEmpty() en VBA(Excel)?



vba excel if null (3)

Creo que IsEmpty es solo un método que toma el valor de retorno de Cell y verifica si está vacío así que: IsEmpty (.Cell (i, 1)) does ->

return .Cell(i,1) <> Empty

He usado el siguiente código VBA:

Do While .Cell(i,1) <> Empty '' doing things i = i+1 Loop

para iterar a través de columnas (con valores dobles / enteros) en Excel. Luego encontré un caso en el que la prueba se evalúa como False cuando el valor de la celda es 0. No tengo idea de cuál es la diferencia entre este caso y los que funcionan.

Si cambio la prueba a:

Do While Not IsEmpty(.Cell(i,1)) .. Loop

funciona bien. Entonces mi pregunta es: ¿Cuál es la diferencia entre cómo se evalúa IsEmpty () y = Empty? ¿En qué casos will = Empty evalúa a True para celdas con valor 0?


De la Ayuda:
IsEmpty devuelve True si la variable no está inicializada o está configurada explícitamente como Empty ; de lo contrario, devuelve False. False siempre se devuelve si la expresión contiene más de una variable.
IsEmpty solo devuelve información significativa para las variantes .

Para verificar si una celda está vacía, puede usar cell(x,y) = "" .
Eventualmente puede ahorrar tiempo usando Range("X:Y").SpecialCells(xlCellTypeBlanks) o xlCellTypeConstants o xlCellTypeFormulas


Empty refiere a una variable que está en su valor predeterminado. Entonces, si comprueba si una celda tiene un valor de 0 = Empty entonces devolverá verdadero.

IsEmpty refiere a que no se inicializa ningún valor.

En pocas palabras, si quiere ver si una celda está vacía (como no existe nada en su valor) entonces use IsEmpty . Si desea ver si algo está actualmente en su valor predeterminado, utilice Empty .