Microsoft Excel:如果列A为空且列B不为空,则显示错误

时间:2016-01-18 05:00:44

标签: excel vba excel-vba conditional-formatting

用户需要输入包含2列A& A的Excel表格。 B. 如果B有值,则A不能为空。 如果A为空且B有值,则Excel工作表必须抛出错误(要求用户在A中输入值)或突出显示带有颜色的单元格?

如何做到这一点?

谢谢, Deepan Mahendran。

3 个答案:

答案 0 :(得分:0)

请将此公式粘贴到 A



=IF(B1<>"","?","")
&#13;
&#13;
&#13;

然后在 A 列中进行条件格式设置,其颜色值为。因此,如果列 B 具有值且 A 为空,则 A 列将突出显示。

或者您可以通过使用以下公式进行条件格式化来保持简单

=AND($B1<>"",$A1="")

enter image description here

选择 A 列,然后转到常规格式选择&#34;使用公式确定要格式化的单元格&#34;并输入上面的公式并选择要突出显示的颜色然后点击确定..

希望这是你需要的......

答案 1 :(得分:0)

使用条件格式。创建一个新规则,然后插入此公式并选择要突出显示的颜色。输入此公式并选择您需要格式化的范围。在这种情况下,我做了A1:A100

=IF($A1<>"","",INDIRECT("RC[1]",0))

enter image description here

答案 2 :(得分:0)

使用VBA

以下是我认为你想要的东西的开始。

您需要做的是将其粘贴到WorkBook VBA项目中的Sheet特定模块中。有关详细信息,请参见下图。

enter image description here

见下面的脚本:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim TargetRowColumnAValue As Range
    Dim TargetRowColumnBValue As Range
    Dim CurrentWorkSheet As Worksheet

    Set CurrentWorkSheet = ThisWorkbook.ActiveSheet
    Set TargetRowColumnAValue = CurrentWorkSheet.Cells(Target.Row, "A")
    Set TargetRowColumnBValue = CurrentWorkSheet.Cells(Target.Row, "B")

    If Not TargetRowColumnBValue = Empty Then

        If TargetRowColumnAValue = Empty Then MsgBox "Please ensure that data has been inserted into Column A!"

    End If

    If Not TargetRowColumnAValue = Empty Then

        If TargetRowColumnBValue = Empty Then MsgBox "Please ensure that data has been inserted into Column B!"

    End If

End Sub

然后,您可以向细胞等添加或删除任何其他格式。

使用条件格式

使用条件格式选择整个B列,然后在“样式”部分的“主页”选项卡中,选择条件格式然后选择新规则,然后选择“使用公式确定哪个要格式化的单元格然后在=IF(INDIRECT("RC1",FALSE) <> "", TRUE, FALSE)中粘贴以下公式,然后您可以选择要填充B列单元格的哪种颜色。然后,B列中的单元格将突出显示相应的任何值列一个非空的单元格。

选择A列但使用公式=IF(INDIRECT("RC2",FALSE) <> "", TRUE, FALSE)

注意例如,如果列B单元格除了空白之外还有任何内容,则列A单元格将是高亮显示,这包括空格。然后,您应该使用数据验证以及引用用户可能输入的有效值的消息。