VBA EXCEL: il metodo find non funziona durante il looping di ogni cella nella selezione


0

Sto provando a creare una macro che, dopo una selezione dell'intervallo, mi dirà quanti contenitori da 20 piedi o 40 piedi sono stati trovati nel campione.

Range Selection

La macro cerca fondamentalmente la stringa "1x20" o "1x40" e quando viene trovata una, le variabili cont20 o cont40 aumenteranno di 1.

il codice che ho:

Sub containercount()

Dim count20 As Integer
Dim count40 As Integer

count20 = 0
count40 = 0 

For Each cell In Selection

If Not ActiveCell.Find("1x20", LookAt:=xlPart, MatchCase:=False) Is Nothing Then
 count20 = count20 + 1
End If

If Not ActiveCell.Find("1x40", LookAt:=xlPart, MatchCase:=False) Is Nothing Then
 count40 = count40 + 1
End If

Next cell

MsgBox ("Number of 20ft containers: " & count20 & vbNewLine & "Number of 40ft containers: " & count40)

End Sub

Ma il risultato è sempre zero ... Gradirei il tuo aiuto.

Risposte:


1

Il motivo per cui non funziona è perché stai cercando in una matrice vuota.

La selezione dovrebbe essere sostituita da qualcosa di simile ActiveSheet.Selection

Inoltre, devi usare Cell.Findno ActiveCell. AciveCell riferimenti alla cella selezionata.

Ma a prescindere, vorrei semplicemente usare a CountIf formula piuttosto che una macro.


1
Si prega di dare un esempio di come usare CountIf
James Mertz

Non posso in questo momento perché non ho installato excell sul mio pc e devo cercare la formattazione esatta. Lo farà domani al lavoro. Chiunque altro possa cercarlo, sentitevi liberi di commentare e aggiungerò l'esempio alla risposta e assegnerò i crediti dove dovuto.
LPChip

Ho appena sostituito ActiveCell.Find con cell.Find e ha funzionato! Grazie! Tra l'altro non uso Countif perché aggiungerò molte più stringhe da trovare, quindi VBA sarebbe più efficiente.
Ruben

Destra. :) Buono a sapersi risolto. :)
LPChip
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.