Excel: Escreva um valor 1 ou 0 se a condição for satisfeita

1

Desculpe se isso já foi postado, mas eu comecei hoje jogando com macros do Excel e preciso de uma mão. Eu tenho uma coluna de dados com valores e gostaria que, se as condições fossem atendidas, a macro retornará 1, ou 0, se isso não ocorrer.

Eu tentei isso, mas estou com algum erro.

Private Sub CommandButton1_Click()
    Dim score As Integer, result As String

    score = Range("E2:E841").Value
    If score >= 20 Then
        result = "1"
    Else
        result = "0"
    End If

    Range("F2:F841").Value = result
End Sub

A propósito, seria possível definir uma coluna como condição? Como

  • Condição 1: a coluna A deve ser maior que 20
  • Condição 2: Coluna B deve dizer sim
Column A      Column B        Result
   1             No             0
  20             Yes            1 
  30             No             1
    
por Xavi 27.06.2015 / 22:01

1 resposta

0

Vamos analisar o código bem rápido -

Dim score As Integer
score = Range("E2:E841").Value

Incompatibilidade de tipos? Ou alguma outra coisa? Você não pode definir um inteiro para o valor de um intervalo de células. Você vai precisar de um loop -

Private Sub CommandButton1_Click()
    Dim score As Range, result As String

    set score = Range("E2:E841")
    For each c in score
     If c >= 20 Then
        result = "1"
     Else
        result = "0"
     End If

     c.offset(,1) = result
    Next
End Sub
    
por 29.06.2015 / 18:34