在 Vlookup 中使用循环和求和函数
Using loop and sum functions with Vlookup
我有一个宏,它基本上在 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。
我假设我需要某种 Do Until 循环之类的东西,但我不确定如何格式化它...我是 VBA 的初学者,所以任何帮助都会非常有用赞赏。
vlookup 将不起作用,因为它将继续只抓取 "Rec" 的第一个实例。
On Sheet 2 在 A 列中列出所有可能的类别,然后在 B1 列中输入
= sumif(Sheet1!C:C,A1,Sheet1!D:D)
然后抄下来。这将为您提供按类别分类的总数。
如果您想使用 VBA,您仍然需要在某处设置一个类别列表,可以是硬编码的,也可以是在您可以循环访问的某处列出的。
如果您的列表在 Sheet2 的 A 列中,那么您将:
dim ws as worksheet
set ws = Worksheets("Sheet2")
For each i in ws.range(ws.Range("A1"),ws.Range("A1").offset(xldown)).Cells
i.offset(,1) = WorksheetFunction.Sumif(Worksheets("Sheets1").Range("C:C"), _
i,Worksheets("Sheets1").Range("D:D"))
next i
我有一个宏,它基本上在 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。
我假设我需要某种 Do Until 循环之类的东西,但我不确定如何格式化它...我是 VBA 的初学者,所以任何帮助都会非常有用赞赏。
vlookup 将不起作用,因为它将继续只抓取 "Rec" 的第一个实例。
On Sheet 2 在 A 列中列出所有可能的类别,然后在 B1 列中输入
= sumif(Sheet1!C:C,A1,Sheet1!D:D)
然后抄下来。这将为您提供按类别分类的总数。
如果您想使用 VBA,您仍然需要在某处设置一个类别列表,可以是硬编码的,也可以是在您可以循环访问的某处列出的。
如果您的列表在 Sheet2 的 A 列中,那么您将:
dim ws as worksheet
set ws = Worksheets("Sheet2")
For each i in ws.range(ws.Range("A1"),ws.Range("A1").offset(xldown)).Cells
i.offset(,1) = WorksheetFunction.Sumif(Worksheets("Sheets1").Range("C:C"), _
i,Worksheets("Sheets1").Range("D:D"))
next i