【发布时间】:2017-05-08 17:58:32
【问题描述】:
刚开始新工作。我正在自动化月末报告,而且我是 VBA 的新手。一直在谷歌上搜索我成功的大部分问题,但我终于遇到了障碍。本质上,我正在从 SAP 下载一些数据,然后我需要从那里构建一个报告。
我的问题是:如何在 VBA 中使用循环执行 sumif 函数?
数据拉取: Sheet1 分别包含产品代码和采购金额(A 列和 B 列)。一个产品代码可以有多个购买(具有相同产品代码的几行)。
到目前为止的步骤:
我将数据表 1 按升序排列。
将产品代码的唯一值复制到另一张表 (sheet2) 上。所以 Sheet2 有一个所有产品的列表(按升序排列)。
我想获取 sheet2 B 列中所有购买的总和(每个产品代码)。我知道如何使用公式来做到这一点,但我需要尽可能地自动化。 (+ 我真的很想弄清楚这一点)
到目前为止,这是我在 VBA 中所做的: 子宏_test()
Dim tb As Worksheet
Dim tb2 As Worksheet
Dim x As Integer
Dim y As Integer
Dim lrow As Long
Set tb = Sheets("sheet1")
Set tb2 = Sheets("sheet2")
lrow = tb.Cells(Rows.Count, "A").End(xlUp).Row
For x = 2 To lrow
For y = 2 To lrow
If tb2.Cells(x, 1).Value = tb.Cells(y, 1).Value Then
tb2.Cells(x, 2).Value = tb.Cells(y, 2).Value
End If
Next y
Next x
结束子
如果我没记错的话,对于 sheet2 col A 中的每个 product_code,我将遍历 sheet1 中的所有产品代码并取回它找到的 LAST 值,而不是所有值的总和......我明白为什么它不起作用,我只是不知道如何解决它。
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
您有什么理由不只是使用
SumIf函数吗?