比较单元格的值

时间:2019-02-11 14:18:22

标签: excel vba if-statement

我有一个非常简单的问题(为什么我不能相信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

1 个答案:

答案 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。 希望这会有所帮助。

相关问题