你好我在VBA相当新。我正在使用超过10,000行的大型电子表格。我想要完成的是:
首先,一个宏将在E列中查找值1
如果匹配,则会在D列的左侧看一个单元格,以获取两个可能的字符串值。
如果该行满足两个条件,则在相应的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
答案 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)。所以要离开你把负数放在第二个参数而不是第一个参数中。