我希望在特定日期通过某个数据集(使用过滤器)进行宏过滤。如果它没有找到日期,我想要一个弹出消息框,说明没有进行任何交易,如果它确实找到了日期,我希望它复制该日期的整个数据集。在下面,我告诉它过滤该日期。我没有问题复制数据集,如果日期没有出现在过滤器中,我似乎无法弹出消息框。
` '复制新购买 窗口(“文件名”)。激活 MonthlyBuys.Activate
ActiveSheet.Range("$A$1:$CN$760").AutoFilter Field:=14, Criteria1:="SA68"
ActiveSheet.Range("$A$1:$CN$760").AutoFilter Field:=10, Operator:= _
xlFilterValues, Criteria2:=Array(1, "08/20/2013")
Lastrow = MonthlyBuys.Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountA(Range("A2:CN" & Lastrow)) = 0 Then
MsgBox ("No New Transactions for" & Now)
Else
MonthlyBuys.Range("A2:CN" & Lastrow).Copy
End If`
感谢您的帮助!
答案 0 :(得分:0)
CountA
计算指定范围内的非空白细胞数。过滤范围时,实际上并未删除该行中的值,因此它们将在CountA
公式中计为非空白。这就是为什么你的MsgBox
永远不会被击中的原因。
执行过滤器时,未显示的行的高度将更改为0.如果整个数据范围被过滤掉(对您不可见),则该范围的高度应为0.因此,您应该检查过滤范围的高度,而不是计算空白值。从
更新您的IF
声明
If WorksheetFunction.CountA(Range("A2:CN" & Lastrow)) = 0 Then
为...
If Range("A2:CN" & Lastrow).Height = 0 Then