【发布时间】:2015-07-20 19:28:41
【问题描述】:
我的 VBA 代码有问题。我尝试比较 2 列,A 列和 B 列。如果某些数据匹配,例如假设 A2 包含 B3 中的文本,那么我需要将单元格 C2 与列 D 进行比较。我不明白为什么,但我收到错误“End If without block If”。非常感谢你们的帮助。
这是我的代码:
Sub Compare()
For i = 1 To 100
For j = 1 To 50
If InStr(1, ActiveSheet.Cells(i, 1).Value, ActiveSheet.Cells(j, 2).Value, vbTextCompare) <> 0 _
Then For k = 1 To 20
If InStr(1, ActiveSheet.Cells(i, 3).Value, ActiveSheet.Cells(k, 4).Value, vbTextCompare) <> 0 Then MsgBox i
End If
Next k
End If
Next j
Next i
End Sub
【问题讨论】:
-
您构建 IF 语句的方式(所有内容都在 1 行) End If 不是必需的。摆脱两个 End If,你应该很高兴。
-
或者 -- 如果毕竟 -- 在单词
Then之后插入一个换行符,则将它们设为一个块。您使用换行符这一事实表明您的行变得笨拙。
标签: vba excel if-statement for-loop