我通过Excel VBA中试图SUMIF函数,但我得到“#VALUE”错误。SUMIF函数在VBA和如何使用动态范围式
Sub xd()
R_lastrow = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
R_lastcolumn = Sheets(1).Cells(1, Columns.Count).End(xlToLeft).Column
o_lastrow = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row
o_lastcolumn = Sheets(2).Cells(1, Columns.Count).End(xlToLeft).Column
For k = 2 To o_lastrow
For j = 2 To o_lastcolumn
Sheets("Sheet2").Cells(k, j).Value = Sheets("Sheet2").Evaluate("SUMIF(Sheet1!&range(cells(2,R_lastrow),cells(2,R_lastcolumn)),range(1,j),Sheet1!&range(cells(j,R_lastrow))")
Next j
Next k
End Sub
可否请你建议我在哪里,我错了
我建议你先DESCR ibe你正在尝试做什么。 (“Sheet2”)。Cells(k,j).Value = Sheets(“Sheet2”)。Evaluate(“SUMIF(Sheet1!&range(cells(2,R_lastrow),cells(2,R_lastcolumn)) ,范围(1,j),Sheet1!&range(单元格(j,R_lastrow))“) 应该是:Sheets(”Sheet2“)。Cells(k,j).Value = Sheets(”Sheet2“)。Evaluate “SUMIF(Sheet1!)&range(cells(2,R_lastrow)&”,“&cells(2,R_lastcolumn))&”,“&range(1,j),Sheet1!&range(cells(j,R_lastrow)) ) – jkpieterse
在我的工作簿中,我列了'a'列和'b'列到'd'列明年销售总额的项目列表。 而在sheet2中,我只在列'a'和列' b'到'd'列(头)。在sumif函数的帮助下,通过使用vba代码求和值。 –
我试图在sumif函数中使用动态范围 –