我正在寻找的是关于哪个公式用于宏的建议。此宏用于在列中搜索字符串(" CAN"),然后返回3行中所有相应数值的总和,只要存在区分大小写的字符串即可。
我已经搜索了vlookup的VBA版本,尝试过sumproduct,索引/匹配等,但是这个宏的必要性不仅区分大小写,而且还是多个数值的总和导致了包含障碍所有这些功能。
我不是一位经验丰富的程序员,如果这篇文章太模糊,我很抱歉。为了使这更简单(希望如此),如果我想创建一个可以采用以下列表的宏,搜索" Apples"并拥有值21返回。
如果这不是本网站的用途......请告诉我,我将删除此帖子。
Oranges Apples $10
apples Oranges $12
Pears Grapes $14
Grapes Oranges $18
APPLES Oranges $19
Oranges Pears $16
Apples Oranges $11
答案 0 :(得分:1)
我将在此重申:调查Pivot Tables。起初它们有点令人生畏,但它们旨在跟踪这类数据。该链接提供了一个教程。
如果您坚持要在VBA中完成此操作,这应该非常简单,因为VBA字符串比较区分大小写。
基本上,您希望遍历列中的每个单元格 (你可以使用带有rows.count的for循环,或者像我在下面所做的那样使用while循环)。然后将每个单元格的值与“CAN”进行比较。如果它相等,则总计=总计+ cell.offset(0,2).value。
修改强>
Sub countApple()
Dim total As Integer
Dim i As Integer
Dim col as Integer
total = 0
i = 1
col = 1 'This will search A. 2 would search B, and so on
While Not Worksheets("sheet1").Cells(i, col).Value = ""
If Cells(i, col).Value = "Apple" Then
total = total + Cells(i, col).Offset(0, 2).Value
End If
i = i + 1
Wend
MsgBox (total) 'Displays 8
End Sub
此代码将起作用(假设A中没有空行)。如果您有任何不明白的地方,请随时与我联系:)