VBA EXCEL: método de localização não funciona quando o loop através de cada célula na seleção

0

Estou tentando criar uma macro que, depois de uma seleção de intervalo, me dirá quantos contêineres de 20 ou 40 pés foram encontrados na amostra.

Amacrobasicamenteprocuraastring"1x20" ou "1x40" e quando uma for encontrada, as variáveis cont20 ou cont40 aumentarão em 1.

o código que tenho:

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

Mas o resultado é sempre zero ... Eu agradeceria sua ajuda.

    
por Ruben 20.05.2014 / 00:18

1 resposta

1

O motivo pelo qual não está funcionando é porque você está pesquisando em uma matriz vazia.

A seleção deve ser substituída por algo como ActiveSheet.Selection

Além disso, você precisa usar Cell.Find , não ActiveCell . AciveCell referências à célula selecionada.

Mas, independentemente disso, eu simplesmente usaria uma fórmula CountIf em vez de uma macro.

    
por 20.05.2014 / 00:24