我如何将一个variables指定的范围与VBA中的偏移量相乘?

现在我正在尝试search特定的彩色单元格的Excel电子表格。 当excelfind一个与颜色匹配的单元格时,则希望excel从该单元格中取出数字,并将其乘以其正下方单元格的偏移量。 完成后,我可以将其存储在另一个variables中。 一旦在纸上find了所有的彩色单元格,它就会把所有的产品加起来,并把答案返回到另一个单元格中。 这里是我现在的代码:

Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean) Dim rCell As Range Dim sResult Dim lCol As Long Dim vResult lCol = rColor.Interior.ColorIndex If SUM = True Then 'If true then sum the colored Cells For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = WorksheetFunction.SUM(rCell, vResult) 'Sums the rCell and adds to vResult 'then stores in vResult End If Next rCell 'Goes to next cell Else For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then oCell = Range("rCell").Offset(1, 0).Select pResult = oCell * rCell vResult = WorksheetFunction.SUM(pResult, vResult) End If Next rCell End If ColorFunction = vResult End Function 

现在我有我的真正的一半程序工作得很好。 我只是不能让程序的错误部分在VBA中工作。 任何帮助将是伟大的!

这是不正确的:

 oCell = Range("rCell").Offset(1, 0).Select 

rCell不是范围名称,而是范围itselve。 尝试:

 oCell = rCell.Offset(1, 0).Select 

你也不需要select范围,但得到范围值。 所以这会更正确:

 oCell = rCell.Offset(1, 0).Value