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

你好,我在VBA是相当新的。 我在一个超过10,000行的大型电子表格中工作。 我试图完成的是:

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

  2. 如果有匹配的话,它将在列D的左边看一个单元格,以获得两个可能的string值。

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

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

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 

如果条件总是必须全部写完,即使感觉就像是在重复自己,那也是多重的。

改变这个:

 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 

编辑:刚才意识到行和列也颠倒了。 偏移的语法是偏移(行,列)。 所以要走了,你把第二个参数中的负数不是第一个。