搜索区分大小写的sumproduct函数的VBA版本

时间:2015-06-18 21:53:50

标签: excel vba excel-vba

我正在寻找的是关于哪个公式用于宏的建议。此宏用于在列中搜索字符串(" 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 

1 个答案:

答案 0 :(得分:1)

我将在此重申:调查Pivot Tables。起初它们有点令人生畏,但它们旨在跟踪这类数据。该链接提供了一个教程。

如果您坚持要在VBA中完成此操作,这应该非常简单,因为VBA字符串比较区分大小写。

基本上,您希望遍历列中的每个单元格 (你可以使用带有rows.count的for循环,或者像我在下面所做的那样使用while循环)。然后将每个单元格的值与“CAN”进行比较。如果它相等,则总计=总计+ cell.offset(0,2).value。

修改

Excel workbook

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中没有空行)。如果您有任何不明白的地方,请随时与我联系:)