我正在尝试在VBA中使用SumProduct
进行If
结果,而使用数组时出现类型不匹配错误。更具体地说,我想要
代码如下:
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
答案 0 :(得分:1)
我猜你在这段代码中发生了错误:
Range("HV12:HV1048576" + n)
你不能将n的值添加到字符串中,而是需要写如下:
Range("HV12:HV" & (1048576 + n))
由于n
应该增加列而不是rowindex,你可以像评论中提到的@OES一样使用它
Range("HV12:HV1048576").Offset(,n)
旁注:
+
用于添加数字(int,double,float,byte,...)
&
用于连接字符串