【问题标题】:Excel VBA - Looping to count cell values larger than / smaller than specific valueExcel VBA - 循环计算大于/小于特定值的单元格值
【发布时间】:2017-02-12 09:06:16
【问题描述】:

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

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

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

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

所有结果都应在工作表中返回(我们称之为 Worksheets("Report")),其中行代表值区间(例如 0 到 $10,000),列代表季度(例如 2007 Q1、2007 Q2、等等)。

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

对于每个合同价值,“如果”条件应如下所示:

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

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

2007_Quarter1 ws: 对于从 A4 到末尾的每个单元格,计算 Range("C4").Value 和 Range("D4").Value 之间包含的值

然后对于从 A4 到末尾的每个单元格,计算 Range("C5").Value 和 Range("D5").Value 之间包含的值

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

我需要救援!提前致谢!

【问题讨论】:

  • 工作表公式 COUNTIF 是否不够?

标签: vba excel loops countif


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多