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

Microsoft Excel : Display Error if Column A is blank and Column B is not blank

用户需要输入包含 2 列 A 和 B 的 Excel sheet。 如果 B 有值,则 A 不能为空。 如果 A 为空且 B 有值,则 Excel sheet 必须抛出错误(要求用户在 A 中输入值)或使用 Color?

突出显示 A 单元格

如何做到这一点?

谢谢, 迪潘·马亨德兰。

请将此公式粘贴到 A

=IF(B1<>"","?","")

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

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

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

Select A 列然后转到常规格式 select "Use a formula to determine which cells to format" 并输入上面的公式并选择颜色突出显示然后点击确定..

希望这是你需要的..

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

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

使用 VBA

以下是我相信你想要的开始。

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

参见下面的脚本:

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

然后您可以向单元格等添加或删除任何其他格式

使用条件格式

使用条件格式 Select 整个 B 列,然后在“样式”部分的“主页”选项卡中,select 条件格式 然后是新规则,然后是“使用公式来确定要设置格式的单元格。然后将以下公式粘贴到那里 =IF(INDIRECT("RC1",FALSE) <> "", TRUE, FALSE) 然后您可以 select 您想要填写的颜色B 列单元格。然后,B 列中的单元格将突出显示对应的 A 列单元格中不为空的任何值。

对 select 列 A 执行相同操作,但使用公式 =IF(INDIRECT("RC2",FALSE) <> "", TRUE, FALSE)

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