我有一个非常简单的问题(为什么我不能相信Iam没有看到错误)。我想相互比较一系列单元格。如果其中一个包含任何值而另一个不包含任何值,则if语句应为true(因此BolPIDEqual = false)。 这很容易,但是当我测试它时,即使两个单元格/范围的测试数据都不相同,if Statemnt也永远不会为真(BolPIDEqual = false)。例如,A1 =“ 1”和A2 =“”导致非ifs被触发,但是第二个if应该触发并将BolPIDEqual设置为false ...
请帮助我,我真的看不到我做错了什么...
For r = 1 To 5
If Worksheets("X").Cells(1, r).Value = "" And Worksheets("X").Cells(2, r).Value = "*?*" Then
BolPIDEqual = False
ElseIf Worksheets("X").Cells(1, r).Value = "*?*" And Worksheets("X").Cells(2, r).Value = "" Then
BolPIDEqual = False
End If
Next r
答案 0 :(得分:0)
我可以建议这一更改。如果我正确理解您的困境。我将工作表名称更改为Sheet1,以便可以在本地进行测试。
Sub testCells()
For r = 1 To 5
If IsEmpty(Worksheets("Sheet1").Cells(1, r).Value) And Not IsEmpty(Worksheets("Sheet1").Cells(2, r).Value) Then
BolPIDEqual = False
ElseIf Not IsEmpty(Worksheets("Sheet1").Cells(1, r).Value) And IsEmpty(Worksheets("Sheet1").Cells(2, r).Value) Then
BolPIDEqual = False
End If
Next r
End Sub
值得一提的是,当实际满足条件时,您仍然必须将BolPIDEqual
设置为true。
希望这会有所帮助。