使用vba填充公式以设置开始单元格的dynamic

lastRow44 = Cells(Rows.Count, "A").End(xlUp).Row LastRow3 = Worksheets("Temp").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row Range("A" & LastRow3).End(xlDown).Offset(0, 11).Formula = "=Sum(M50:M" & lastRow44 & ")" 

我正在尝试修改vba代码以使其更具dynamic性。 我想设置和数计算更加dynamic。 所以我正在尝试类似Range("A" & LastRow3).End(xlDown).Offset(0, 11).Formula = "=Sum(("M" & LastRow3).End(xlDown).Offset(0, 11) & lastRow44 & ")"自动定义起始单元格为M50,但是它并不按照我的意图工作。有什么方法可以修改代码来计算起始单元格的dynamic值?

谢谢!

尝试改变

 lastRow44 = Cells(Rows.Count, "A").End(xlUp).Row LastRow3 = Worksheets("Temp").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row 

 lastRow44 = Sheets("Temp").Cells(Rows.Count, 1).End(xlUp).Row LastRow3 = Worksheets("Temp").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 

另外,我不确定你正在努力完成什么

 Range("A" & LastRow3).End(xlDown).Offset(0, 11).Formula = _ "=Sum(("M" & LastRow3).End(xlDown).Offset(0, 11) & lastRow44 & ")" 

你的公式正在做的是首先设置你定义的拉斯特罗,然后向下search(就像你击CTRL +向下箭头)。 如果这不是你想要的,请尝试删除“.END(xlDown”部分。

最后,如果你知道你正在使用11的偏移量,为什么不把它设置为使用“M”而不是A,而不是抵消?

那样的事情呢?

 lastRow44 = Cells(Rows.Count, "A").End(xlUp).Row For x = 50 To LastRow3 Range("A" & x).Formula = "=Sum(""M""" & x & "": M "" & lastRow44 & ")" Next x