2011-02-02 13 views
5

Quando si valuta il valore di una cella in un foglio di lavoro in Excel, la seguente affermazione è vera?Len (cella.Valore) = 0 e cell.Value = "" equivalenti in Excel?

Se e solo se Len(cell.Value) = 0, quindi cell.Value = "".

Ciò implica che sia sicuro per verificare che non vi siano zero caratteri in una cella invece di confrontare il valore della cella una stringa vuota.

risposta

7

Sì, fanno la stessa cosa.

Tuttavia, si consiglia di utilizzare la funzione IsEmpty per verificare le celle vuote. Se inserisci una virgoletta singola in una cella ', sia il controllo len sia il controllo ="" indicheranno entrambi che la cella è vuota. Quando in realtà non lo è.

IsEmpty restituirà falso in questo scenario.

Ed è anche un po 'più facile da leggere.

+0

Grazie per il un consiglio, è bello saperlo. Sebbene al di fuori della portata della mia domanda, solo la cautela sarebbe che quando si utilizza la funzione Trim e quindi si valuta il valore della cella come una stringa, IsEmpty non funzionerà. – strcompnice

1

Sono sicuro che la tua affermazione è vera. Lo sto usando da un po 'e non ho mai avuto un problema con questa ipotesi

I miei due centesimi: non sono sicuro che tu abbia ottenuto un sacco di prestazioni dal trucco, e forse è più facile per le altre persone capire il significato di rispetto a Len(cell.Value) = 0

+0

Penso che tu abbia ragione. Ho valutato due celle 500000 volte con un ciclo, e cell.Value = "" ha impiegato 48 secondi mentre Len (cella.Valore) = 0 ha impiegato 49 secondi. – strcompnice

+2

Penso che la mancanza di differenza sia in gran parte perché il tempo di leggere il valore dalla cella è molto maggiore del tempo impiegato per fare il confronto/controllo di lunghezza ... se si controlla con variabili stringa si dovrebbe vedere che usando 'Len () = 0 'è in realtà circa il doppio della velocità di' = "" '. –

+0

Buon punto Simon. Ho valutato cinque stringhe, quattro delle quali 10-15 caratteri di lunghezza e una vuota, 50000000 volte, e i tempi di esecuzione erano 26 secondi per string = "" e 17 secondi per Len (stringa) = 0. – strcompnice

Problemi correlati