Excel:如果条件满足,则写入 1 或 0 值

Excel:如果条件满足,则写入 1 或 0 值

抱歉,如果这篇文章已经发布,但我今天才开始使用 Excel 宏,我需要帮助。我有一个包含值的数据列,我希望如果条件满足,宏将返回 1,如果不满足,则返回 0。

我已尝试过此操作但出现了一些错误。

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

顺便问一下,可以设置某一列作为条件吗?比如

  • 条件 1:列A必须高于 20
  • 条件 2:列B必须回答“是”
Column A      Column B        Result
   1             No             0
  20             Yes            1 
  30             No             1

答案1

让我们快速分析一下代码 -

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

类型不匹配?还是其他原因?您无法将一个整数设置为单元格范围的值。您需要一个循环 -

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

相关内容