以下代码旨在在项目项目列表上执行sumif工作表函数,然后将每个项目的总现金流写入名为Pipeline的不同工作表中。for循环中的运行时错误1004
的工作表函数但是产生一个运行时错误1004“方法“对象范围“_Global失败。
的代码已经被修改(见下面的答案),其固定运行时错误,但仍然没有不会产生所需的结果我基于最后一个答案自己修改了代码,但我认为我错过了最后一步使其工作。为了更清楚起见,我附加了代码当前生成的屏幕截图:在联合:这是仍然没有工作
两件事我希望显示工作表中存在的项目的项目编号(在本例中,由于有三个项目,B8应该具有值1,B9值2和B10值3)。然后,在H列和的名单应该停止,而不是返回值为0
使其更清晰时,有没有更多的项目进行总结,这是该管道片看起来像一个截图:
请帮忙吗?新代码如下:
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
好的谢谢; 'ActiveCell'不是一个命名的范围,而只是当前的活动单元格,所以我将其替换了。然而,第二个建议与偏移现在产生一个错误(新代码见上文) - 无效使用属性。 – Matthias
这里。我更正了我的代码。我忘了你正在使用'ActiveCell',它是一个Range对象的特例。您不能修改'ActiveCell',就像修改一个常规的'Range'对象一样。 – ApplePie
好吧修好了,谢谢。现在1004已经回来了'Range(ActiveCell)...' - 我想知道sumif的结构是否是问题? – Matthias