我目前正在处理大量的合同清单。每个列表都在每个季度的单独工作表中,并且需要保持这种状态。例如: 2007_Quarter1 ,2007_Quarter2
等我有10年的数据,所以有40个季度的报告工作表。
现在我需要编写一个vba例程,按照指定的顺序执行以下操作:
计算10,001到25,000之间的所有值;等等
然后,当范围内没有更多的合约价值(因工作表而异)时,请转到下一工作表并重复此过程。
所有结果都应该在工作表(我们称之为工作表(“报告”))中返回一个表,其中行是值间隔(例如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,等等。
我需要救援!提前谢谢!
答案 0 :(得分:0)
如果您可以手动准备生成的矩阵(行中的间隔和列中的间隔),您可以编写一个读取正确文件的宏,并为矩阵中的每个单元格计算正确范围内的合约。 / p>
如果您想自动构建矩阵,您应该告诉宏年份范围。然后你可以编写一个读取范围的循环,并为你编写循环的每个范围写一个循环,以正确的顺序读取每个文件。