【发布时间】:2015-12-22 11:35:20
【问题描述】:
我有一个宏,它实质上在 Sheet1 中的 C 列中搜索值“Rec”并复制 D 列中的相应值,然后将其粘贴到 Sheet2 的 B 列中的最后一个打开的单元格中。它只是做它应该做的事情,如下所示:
Sub FindPasteGSVInNextCell()
Worksheets("Sheet2").Activate
Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Value = _
WorksheetFunction.VLookup("Rec", Sheet1.Range("C2:H25"), 2, False)
End Sub
我现在想要代码,而不是仅仅搜索单个“Rec”值,而是在 C 列中搜索所有带有“Rec”的行,并将它们在 D 列中的所有对应值相加,然后放置该总和进入Sheet2。
我假设我需要某种“直到”循环或其他东西,但我不确定如何格式化它......我是 VBA 的初学者,所以任何帮助将不胜感激。
【问题讨论】:
-
您可以简单地在第二张纸上使用
sumif等式。 -
我同意@ScottCraner,这可以通过 SUMIF 公式轻松完成,无需 vba。您尝试使用 VBA 执行此任务是否有特定原因?
-
我认为它需要合并 VBA,因为它将是一个大电子表格,当新数据填充 Sheet1 时会每天更新。它必须运行约 40 个不同类别的数据总和,并将它们中的每一个导入 Sheet2 上的相应日期。因此,我认为基本 sumif 不会起作用,因为如果有意义的话,它所计算的主数据集每天都会发生变化。可能会更复杂,但从长远来看,我认为 vba 会做得很多更容易——只需要弄清楚这个循环的东西..