Looping através de duas colunas para verificar a condição

0

Eu quero percorrer a coluna P e ver se há uma célula que tenha o número "1" e, ao mesmo tempo, passar pela coluna N para ver se há também um número "1" na mesma linha / coluna, se não houver um "1" na coluna N, ao mesmo tempo, há um número "1" na coluna P, deve haver uma mensagem de erro.

Aqui está o que eu comecei, mas não parece estar funcionando tão bem.

    For Each a In Range("p6:p40")
    If a.Value = "1" Then
        For Each c In Range("n6:n40")
            If c.Value = "" Then
            msgbox("check again")
            Else
            msgbox("check again")
            End If
        Next
    End If
Next
    
por user582635 19.04.2016 / 22:34

2 respostas

1

Você pode alterar o loop para um loop regular:

For i = 6 To 40
    If Range("P" & i) = "1" Then
        If Range("N" & i) <> "1" Then
            MsgBox "P = 1 but N did not on row " & i
        End If
    Else

    End If
Next
    
por 19.04.2016 / 22:56
2

Você não precisa de outro loop para a coluna N se quiser verificar um valor na mesma linha em que está inspecionando a coluna P. Tente seguir as linhas:

Sub test()

For Each a In Range("p6:p40")
    If a.Value = "1" Then
       If a.Offset(0, -2).Value = "" Then
           MsgBox ("blank in row " & a.Row)
       Else
           MsgBox ("not blank in row" & a.Row)
       End If
    End If
Next

End Sub

Além disso, apenas uma dica para depuração: ajuda imensamente se você tiver duas mensagens diferentes para os dois ramos IF. Caso contrário, como você sabe qual ramo IF foi acionado?

    
por 19.04.2016 / 22:56