Excel VBA循环求和结果异常,求助排查原因
Excel VBA循环求和结果异常问题排查与解决
问题场景
使用VBA循环实现日期匹配求和:遍历活动工作表的日期列表区域calrange,在「Offset Transactions」工作表的日期及对应值区域lookuprng中查找匹配日期,将匹配行偏移6列对应的值累加到sum变量中。
问题代码
Set lookuprng = Worksheets("Offset Transactions").Range(Worksheets("Offset Transactions").Cells(startrow, 1), Worksheets("Offset Transactions").Cells(endrow, 7)) Set calrange = ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(67, numcols)) For Each searchdate In calrange datematch = Application.CountIf(lookuprng, cell.Value) If datematch > 0 Then For Each date In lookuprng If searchdate.Value = date.Value Then sum = sum + date.Offset(0, 6).Value MsgBox (date.Offset(0, 6).Value) Exit For End If Next date End If Next searchdate
异常现象
- 通过
MsgBox可确认已读取到8个正确的待求和值 - 最终
sum变量结果异常:实际预期总和为945,623,但返回值为944,047,差值并非整数值缺失 - 尝试将值存入数组后用
Application.Sum求和,结果依旧异常
问题排查与解决
经排查,异常原因是**startrow参数错误**,导致lookuprng的范围定义不符合预期,进而引发循环逻辑异常。修正startrow参数后,求和结果恢复正常。
内容的提问来源于stack exchange,提问作者beesbees1
相关产品推荐
相关产品推荐

