变量sumproduct,如果在VBA中

时间:2017-03-22 07:18:30

标签: vba excel-vba excel

我正在尝试在VBA中使用SumProduct进行If结果,而使用数组时出现类型不匹配错误。更具体地说,我想要

  1. 当HT栏中的范围符合某些标准时
  2. 当HS栏中的范围符合某些标准时
  3. 将HT列与HV列和后续列相乘
  4. 代码如下:

    For Day = 1 To DaysTill
        For m = 0 To Rot
            For n = 0 To StepsNumber
    
                RArray((Day - 1) * (Rot + 1) + m, n) = Application.WorksheetFunction.SumProduct(--(Range("HT12:HT1048576") <= RotArray((Day - 1) * (Rot + 1) + m)), --(Range("HS12:HS1048576")) = Day, Range("HT12:HT1048576"), Range("HV12:HV1048576" + n)) * PriceStepArray(n)
            Next n
        Next m
    Next Day    
    

1 个答案:

答案 0 :(得分:1)

我猜你在这段代码中发生了错误:

Range("HV12:HV1048576" + n)

你不能将n的值添加到字符串中,而是需要写如下:

Range("HV12:HV" & (1048576 + n))


由于n应该增加列而不是rowindex,你可以像评论中提到的@OES一样使用它

Range("HV12:HV1048576").Offset(,n)



旁注:

+用于添加数字(int,double,float,byte,...)

&用于连接字符串