以下代码用于在项目项目列表上执行 sumif 工作表函数,然后将每个项目的总现金流量写入名为 Pipeline 的不同工作表上。
但是,工作表函数生成了运行时错误 1004“方法 '范围对象 '_Global' 失败。
代码现在已被修改(见下面的答案),它修复了运行时错误,但仍然没有产生预期的结果。我已经根据最后一个答案自己修改了代码,但我认为我错过了最后一点以使其工作。为了更清楚,我附上了代码当前生成的屏幕截图:
两件事仍然不起作用:在工作表的 B 列中,我想显示源工作表上存在的项目的项目编号(在此示例中,B8 应具有值 1、B9 值 2 和 B10 值 3 为三个项目)。然后,当没有更多项目要汇总时,H 列中的总和列表应该停止,而不是返回值 0。
为了更清楚,这是 Pipeline 工作表的截图:
请问有什么帮助吗?新代码如下:
Sub Write_Pipeline()
'Sums up revenue of each project in the Input section to display expected cash flow
Dim ip As Worksheet, pl As Worksheet, Start As Range, Length As Integer, Cnt As Integer, PH As Integer
Dim SelectRange As Excel.Range
Dim SumRange As Excel.Range
Dim cell As Excel.Range
Set ip = Worksheets("Input")
Set pl = Worksheets("Pipeline")
Set Start = pl.Range("B8")
Start = 1
Cnt = 1
Length = 151
Set SelectRange = ip.Range("B26:B151")
Set SumRange = ip.Range("Y26:Y151")
For Each cell In pl.Range("H8").Resize(Length)
cell.Value = Application.WorksheetFunction.SumIf(SelectRange, Start, SumRange)
PH = Start.Value
Start = Start.Offset(1, 0)
Start = PH + 1
Next cell
End Sub