使用不同行上的单元格汇总计算集

时间:2014-02-21 18:22:02

标签: excel vba function excel-vba loops

我有一个帐户和交易列表,每行有四列。 “交易#”。 “付费”。 “拥有”。 “注释”。

我每天都会获得每个客户端的更新,行数未知,我想构建一个VBA函数,这将有助于检查和汇总每个工作表。这就是我要为4行的工作表做的事情。

A B C D E
1001 100 150个音符(我的计算)
1002 150 250笔记(我的计算)
1003 250 400笔记(我的计算)
1004 400 500笔记(我的计算)

我在每种情况下的计算是手动复制和粘贴公式以检查:
C1与B2,
相同 C2与B3等相同。

但我发现这很慢,复制错误会让我头疼,因为我必须手动找到问题。

所以,我正在制作一个VBA脚本,从第2行开始,检查每行的B值是否与前一行的C值相同,如果没有差别则返回零。 (我们从第2行开始,因此它有一个先前的值来比较!)。当我得到一个空行时,我必须停下来,所以最后一个值不是废话,(它不会有“B”值来比较)。

如果计算不匹配,我必须记录该值,以便我可以返回并检查注释。我想它必须完成检查,不管是否有很多不匹配...但是给我一个坏行列表来检查

所以我的输出msgbox看起来像:

“没有匹配错误”

或者可能是一个清单:

“事务1001,1003,1008,100x中的B列问题......”

我希望这是有道理的。

我可能打算在工具栏上创建一个按钮,这样我就可以加载一个xlsx文件然后立即运行该功能,看看我需要做多少检查!

我想出了如何查看单个列中的每个单元格,停在一个空白行,但这就是我得到的。

1 个答案:

答案 0 :(得分:0)

我个人会采用这种方法:在F列中使用一个简单的if语句,如下所示:

=IF(C1=B2,"","Error")

然后您可以按"错误"排序在F列中使用" Filter"根据"数据"用于快速查找所有错误的功能区,您甚至可以在单元格G1中使用另一个公式:

=IF(COUNTIF(<Range of your error column>,"Error"), "Errors Present","No Errors")

如果是#34;错误存在&#34;

,您甚至可以将该公式单元格格式化为红色。

根据数据量的不同,您可能希望为列F创建动态范围,以便您可以将forumla复制并粘贴到列中,然后复制整个范围作为值重新粘贴,因为excel重新计算每个公式每次计算公式时都会非常耗时。

你甚至可以建立一个索引页面,其中包含一个forumal,用于检查所有&#34;错误存在&#34; /&#34;无错误&#34;单元格并告诉您是否有任何报告有错误以简化操作。要清楚的是,有一种方法可以用vba来做到这一点,但是在大范围内循环变得非常无效,并且作为新用户,我认为这将快速,干净,高效地完成您所需的一切。