Excel VBA - 循环计算大于/小于特定值的单元格值

时间:2016-10-04 09:02:04

标签: excel vba excel-vba loops countif

我目前正在处理大量的合同清单。每个列表都在每个季度的单独工作表中,并且需要保持这种状态。例如: 2007_Quarter1 2007_Quarter2等我有10年的数据,所以有40个季度的报告工作表。

现在我需要编写一个vba例程,按照指定的顺序执行以下操作:

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

  4. 然后,当范围内没有更多的合约价值(因工作表而异)时,请转到下一工作表并重复此过程。

  5. 所有结果都应该在工作表(我们称之为工作表(“报告”))中返回一个表,其中行是值间隔(例如0到$ 10,000),列是季度(例如2007年第一季度,2007年第2季度,等)。

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

    对于每个合约值,“If”条件应如下所示:

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

    到目前为止,我没有成功地对此进行编码。我怀疑一些循环会起作用,但我找不到一种方法来实现它。循环可以:

    在2007_Quarter1中: 对于从A4到结尾的每个单元格,计算值包括在范围(“C4”)。值和范围(“D4”)之间。值

    然后对于从A4到结尾的每个单元格,计算范围内的值(“C5”)。值和范围(“D5”)。值

    ...依此类推,然后重复2007_Quarter2,2007_Quarter3,等等。

    我需要救援!提前谢谢!

1 个答案:

答案 0 :(得分:0)

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

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