Come trovare un valore in una colonna excel dal codice vba Cells.Find

Devo trovare un valore celda in un foglio Excel. Stavo usando questo codice vba per trovarlo:

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 excel . Lo trovo con il prossimo codice:

  Columns("B:B").Select Selection.Find(What:="VA22GU1", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate 

Ma non so come adattarlo al primo codice vba, perché devo usare il valore nothing .

Basta usare

 Columns("B:B").Select Set cell = Selection.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 

Solo per completezza, puoi anche usare la stessa tecnica sopra con i tavoli Excel.

Nell’esempio seguente, sto cercando un testo in qualsiasi cella di una tabella di Excel denominata “tblConfig”, posto nel foglio chiamato Config che normalmente è impostato per essere nascosto. Accetto le impostazioni predefinite del metodo Trova.

 Dim list As ListObject Dim config As Worksheet Dim cell as Range Set config = Sheets("Config") Set list = config.ListObjects("tblConfig") 'search in any cell of the data range of excel table Set cell = list.DataBodyRange.Find(searchTerm) If cell Is Nothing Then 'when information is not found Else 'when information is found End If 
 Dim strFirstAddress As String Dim searchlast As Range Dim search As Range Set search = ActiveSheet.Range("A1:A100") Set searchlast = search.Cells(search.Cells.Count) Set rngFindValue = ActiveSheet.Range("A1:A100").Find(Text, searchlast, xlValues) If Not rngFindValue Is Nothing Then strFirstAddress = rngFindValue.Address Do Set rngFindValue = search.FindNext(rngFindValue) Loop Until rngFindValue.Address = strFirstAddress