Vba 如果多个条件匹配,则返回true
你好,我是VBA的新手。我在一个超过10000行的大型电子表格中工作。我正在努力实现的是:Vba 如果多个条件匹配,则返回true,vba,excel,Vba,Excel,你好,我是VBA的新手。我在一个超过10000行的大型电子表格中工作。我正在努力实现的是: 首先,带有的宏将在列E中查找值1 如果存在匹配项,它将在D列左侧的一个单元格中查找两个可能的字符串值 如果该行的两个条件都满足,则在相应的G行中返回true 这就是我下面的内容,它在下面不起作用,我遇到了错误。感谢您的帮助 Sub find_mismatch() Dim c As Range Dim string1 As String Dim string2 As S
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条件始终必须完整编写,即使感觉像是在重复自己 更改此项:
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(行、列)。因此,要向左走,请将负数放在第二个参数中,而不是第一个参数。“它不工作”/“出错”-您希望它如何工作(显示示例数据和小样本的预期结果),以及它实际如何工作?错误是什么?在哪一行代码上创建了错误/创建错误时它在工作簿中到达了哪一行?有关如何修复此问题,请参阅ScottCraner的答案。然而,为什么要在这里使用宏,在这里你可以使用一个非常简单的公式?@ChrisHelgeson我意识到一个小错误并已修复,请尝试编辑。