Eu tenho um monte de variáveis que armazenei em uma matriz. Estou tentando usar uma instrução If Then para ver se o valor de uma célula específica está nessa matriz. Aqui está o meu código:
Dim Vars1 As Variant
Vars1 = Array("Stage 2", "Stage 3", "Stage 4", "Stage 5", "Stage 6", "Stage 7", "WIP Cleanup",
"Road Test", "Test", "Test Cleanup", "In Bay Inspection", "In Bay Clean Up", "PDI", "PDI
Cleanup", "Verify", "Complete", "Pictures", "Remove", "ECD", "Platform Install", "#N/A")
'Cuts special delivery parts for Line 3
For RowCounter = LastRow To 1 Step -1
If InStr(1, Range("F" & RowCounter), "underslung", vbTextCompare) Then 'Underslung
If Range("B" & RowCounter).Value = "FA Line 3" And Range("N" & RowCounter).Value = Vars1 Then
Rows(RowCounter).EntireRow.Cut _
Destination:=Sheets("FA3").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
End If
Next RowCounter
Eu não acho que o código está funcionando porque não está cortando e colando a linha. Como faço para obter a instrução if then para verificar e ver se o valor em "Range("N" & RowCounter)" está na matriz?
Nesta parte do seu código, você está comparando um único valor a uma matriz. Você deve verificar se o valor está na matriz. Não sei de cabeça se existe uma função do Excel VBA que faz isso. Não é difícil escrever uma função que testa um valor em um array. Aqui está uma ideia,
Para testar esta função,
Então, onde você tem sua condição, primeira linha na minha resposta, tente isso;
Espero que isto ajude
njc
Outra maneira de contornar o problema é parar de descrever constantes como uma matriz. Descreva-o como
e use o mesmo
InStr(...)
que para a coluna F