如果我的数据透视表有空单元格,请添加消息框



在此处输入图像描述我有一个运行宏的Excel工作簿,最后在数据透视表中显示所有内容

当我的数据透视表有一个空单元格(在我的宏末尾(时,我正在尝试添加一个 msgbox( 我已经做了条件格式版本(红色空白单元格(,它工作正常,但客户想要一个 msgbox 来提醒他。

我找到了一个应该可以工作的 IsEmpty 命令,但我似乎无法让它只在所述数据透视表内查看。 这是我尝试过的:

Sub IsEmpty()
If IsEmpty(ActiveSheet.Range("PivotTables(1)")) = True Then
'Cell A2 is not blank
MsgBox "Cell A2 is empty"
Else
End If
End Sub

我确定我的 If 语句的编写方式是错误的。只是似乎找不到正确的语法。

提前致谢

图片已添加;我希望宏以透视的 C 列为目标。但是,您无法知道哪个单元格将为空或列表将持续多长时间。 如果只是让Excel检查广谱(c2:c300(,则数据透视表完成后总会有空单元格。 您可能可以创建一个循环,但它超出了我当前的技能集。

数据透视表的名称为"数据透视表2">

是否有仅在数据透视表的 c 列中搜索空单元格?

请考虑以下函数的功能。它将返回 True 或 False,具体取决于列 A 和 C 中的项目计数。在 A 列中,对文本、数字或函数进行计数。在 C 列中,每个单元格中必须有一个数字。如果两个计数相同,则函数返回 True。如果存在当前函数未更正评估的异常,则可以进一步细化任一计数。

Function IsComplete() As Boolean
' 025
Dim Rng As Range
With ThisWorkbook.Sheets("PivotTables(1)")      ' change to suit
' set a range from A3 to end of column A
Set Rng = .Range(.Cells(3, "A"), .Cells(.Rows.Count, "A").End(xlUp))
End With
With Application.WorksheetFunction
IsComplete = (.CountA(Rng) = .Count(Rng.Offset(0, 2)))
End With
End Function

可以使用代码调用此函数,并显示一个消息框,如果函数返回 False,则显示另一个消息框。代码可以挂接到工作表上工作簿中任何位置的按钮。

Sub CommandButton1_Click()
Dim Txt As String
If IsComplete Then
Txt = "The pivot table was created without mistakes."
Else
Txt = "Some data are missing in the pivot table."
End If
MsgBox Txt, vbInformation, "Action report"
End Sub

您还可以将该函数作为 UDF 调用,并在工作簿中任何工作表的单元格中显示 True 或 False。UDF 调用就像=IsComplete().还可以在 IF 条件中嵌入 UDF 调用,并在工作表上显示另一个文本。

=IF(IsComplete(),"All's well","Missing Item")

实际上,您可以稍微修改该函数以返回一个计数与另一个计数之间的差异,并显示"缺少 1 个项目"。可能性是无穷无尽的,因为功能非常通用。

相关内容

最新更新