Devo trovare un valore celda in un foglio Excel. Stavo usando questo codice VBA per trovarlo:Come trovare un valore in una colonna excel tramite codice vba Cells.Find
Set cell = Cells.Find(What:=celda, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False)
If cell Is Nothing Then
'do it something
Else
'do it another thing
End If
Il problema è quando devo trovare il valore solo in una colonna di Excel. Trovo con codice successivo:
Columns("B:B").Select
Selection.Find(What:="VA22GU1", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Ma io non so come adattarla al primo codice VBA, perché devo utilizzare il valore nothing
.
http://www.siddharthrout.com/2011/07/14/find-and-findnext-in-excel-vba/ Inoltre si prega di evitare l'uso di '.Select' Vedi questo link http: //stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select/10718179#10718179 –
Se vuoi semplicemente sapere se il valore esiste da qualche parte nell'intervallo, è un'esecuzione più rapida (vale la pena se si controllano centinaia di valori) per utilizzare una formula di Excel. Se ad esempio celda è un numero, è possibile utilizzare IF Evaluate ("COUNTIF (Sheet1! A1: A1000," & celda & ")")> 0 THEN ... – lessthanideal