如果多个条件匹配,则返回true

时间:2015-11-05 17:34:48

标签: excel vba excel-vba

你好我在VBA相当新。我正在使用超过10,000行的大型电子表格。我想要完成的是:

  1. 首先,一个宏将在E列中查找值1

  2. 如果匹配,则会在D列的左侧看一个单元格,以获取两个可能的字符串值。

  3. 如果该行满足两个条件,则在相应的G行中返回true

  4. 这就是我在下面的内容,它不能在下面工作,我遇到了错误。任何帮助表示赞赏。

        Sub find_mismatch()
         Dim c As Range
         Dim string1 As String
         Dim string2 As String
         string1 = "Apple"
         string2 = "Orange"
    
         For Each c In Range("E1:E10138")
             If c.Value = 1 Then
                 If ActiveCell.Offset(-1, 0).Value = string1 Or string2 Then
                    ActiveCell.Offset(2, 0).Value = "True"
                 End If
             End If
         Next
    End Sub
    

1 个答案:

答案 0 :(得分:1)

如果条件总是必须全部写入,即使您感觉自己在重复自己。

改变这个:

If ActiveCell.Offset(-1, 0).Value = string1 Or string2 Then
    ActiveCell.Offset(2, 0).Value = "True"
End If

到此:

If c.Offset(0, -1).Value = string1 Or c.Offset(0, -1).Value = string2 Then
    c.Offset(0, 2).Value = "True"
End If

编辑:刚才意识到行和列也是相反的。 offset的语法是Offset(Rows,Columns)。所以要离开你把负数放在第二个参数而不是第一个参数中。