2016-10-04 193 views
0

我目前正在处理大量的合同列表。每个列表都在每个季度的单独工作表中,并且需要保持这种状态。例如:2007_Quarter12007_Quarter2等我有10年的数据,所以40个季度的报告工作表。Excel VBA - 循环计数单元值大于/小于特定值

现在我需要按照指定的顺序来编写一个VBA程序,将做到以下几点,:

  1. 在每个季度报告工作,通过含有合同值的列运行;然后
  2. 计算0到10,000之间的所有值;那么
  3. 计算10,001到25,000之间的所有值;等等

  4. 然后,当范围内没有更多的合同值(这将在不同的工作表中变化)时,转到下一个工作表并重复该过程。

所有结果应该在工作表中(我们称之为工作表(“报告”))在一个表,其中的行是值的时间间隔(如0至$ 10,000)和列是宿舍(如2007年第一季度被退回,2007年第二季度等)。

我的问题的一个特别的方面是,出于实际的原因,我宁愿在另一个工作表(“变量”)中包含的表中设置控制时间间隔的最小值和最大值,例如,I 'd范围C4下的所有最小值和范围D4下的所有最大值。

对于每个合约价值,一个“如果”条件应该是这样的:

If ContractVal > Worksheets("Variables").Range("C4").Value And 
If ContractVal < Worksheets("Variables").Range("D4").Value Then ... 

到目前为止我有在有效编码这个没有成功。我怀疑有些循环会起作用,但我无法找到实现它的方法。环路会做:

在2007_Quarter1 WS: 对于从A4每个小区降低到结束时,计数值包含范围(“C4”)值和范围(“D4”)之间值

然后。对于从A4到下一个结束的每个单元格,计数值包含在范围(“C5”),值和范围(“D5”)之间。值

...等等,然后重复执行2007_Quarter2,2007_Quarter3和等等。

我需要救援!提前致谢!

+5

工作表公式COUNTIF不够吗? –

回答

0

如果您可以手动准备生成的矩阵(列中的行和季度间隔),您可以编写一个宏来读取正确的文件并计算矩阵中每个单元的正确范围内的合约。

如果你想自动构建矩阵,你应该告诉宏的年份范围。然后,您可以编写一个循环来读取范围,并为每个范围编写一个循环,以正确的顺序读取每个文件。