Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA excel计数器,最大值为_Vba_Excel - Fatal编程技术网

VBA excel计数器,最大值为

VBA excel计数器,最大值为,vba,excel,Vba,Excel,我今天写信给你,因为我对计算我订购的数量在给定年份的价值有问题 这是我所拥有的一个例子: 我想对每行slidy year列中的值求和,最大值为12 Qx/201x,这是我行的最后几个月。我在每个有“Qx/201x”的列下面都放了一个“1”,但我只想保留最后的12个,并根据这个值求和 您是否可以简单地了解VBA如何完成此任务?尝试此功能 Function SumIfColMatch(ByVal matchRow As Integer, ByVal matchString As String,

我今天写信给你,因为我对计算我订购的数量在给定年份的价值有问题

这是我所拥有的一个例子:

我想对每行slidy year列中的值求和,最大值为12 Qx/201x,这是我行的最后几个月。我在每个有“Qx/201x”的列下面都放了一个“1”,但我只想保留最后的12个,并根据这个值求和

您是否可以简单地了解VBA如何完成此任务?

尝试此功能

 Function SumIfColMatch(ByVal matchRow As Integer, ByVal matchString As String, ByVal sumRange As Range, ByVal maxToCount As Integer)
    Dim dblTotal As Double
    Dim lngCounter As Long
    Dim sumCount As Integer

    sumCount = 0

    For lngCounter = sumRange.Cells.Count To 1 Step -1
        If Cells(matchRow, lngCounter).Value Like matchString Then
            dblTotal = dblTotal + sumRange(lngCounter).Value
            sumCount = sumCount + 1
            If sumCount >= maxToCount Then Exit For
        End If
    Next lngCounter

    SumIfColMatch = dblTotal

End Function
这对我来说很管用,见附件截图


我不想对所有内容进行求和,只想对每行Q*/201*列下的单元格进行求和,那将是我最快乐的一年。我已经尝试过你的功能,但它不能按我需要的方式工作。你还有别的想法吗?先谢谢你
In the formula cell use something like this

    =SumIfColMatch(1,"Q*/201*",A3:DL3,12)