Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用vba设置起始单元格动态的填充公式_Vba_Excel_Sum_Offset - Fatal编程技术网

使用vba设置起始单元格动态的填充公式

使用vba设置起始单元格动态的填充公式,vba,excel,sum,offset,Vba,Excel,Sum,Offset,我试图修改vba代码,使其更具动态性。我想将总和计算设置为更动态的。因此,我正在尝试类似于Range(“A”&LastRow3).End(xlDown).Offset(0,11).Formula=“=Sum((“M”&LastRow3).End(xlDown).Offset(0,11)&lastRow44&”)的东西 自动将起始单元格定义为M50。但这不是我想要的。是否有任何方法修改代码以使起始单元格的总和计算动态 谢谢!像这样的东西怎么样: lastRow44 = Cells(Rows.Cou

我试图修改vba代码,使其更具动态性。我想将总和计算设置为更动态的。因此,我正在尝试类似于
Range(“A”&LastRow3).End(xlDown).Offset(0,11).Formula=“=Sum((“M”&LastRow3).End(xlDown).Offset(0,11)&lastRow44&”)的东西

自动将起始单元格定义为M50。但这不是我想要的。是否有任何方法修改代码以使起始单元格的总和计算动态


谢谢!

像这样的东西怎么样:

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 & ")"
试着改变

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

另外,我不知道你想用什么来完成

lastRow44 = Sheets("Temp").Cells(Rows.Count, 1).End(xlUp).Row
LastRow3 = Worksheets("Temp").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
公式所做的是首先设置为定义的最后一行,然后向下搜索(就像按CTRL+向下箭头键一样)。如果这不是您想要的,请尝试删除这两行的“.END(xlDown)”部分


最后,如果您知道您使用的偏移量为11,为什么不将其设置为使用“M”而不是A,而只是不使用偏移量?

用于定义公式的等式需要更好的报价管理。==sum(M”&lastrow3&“:X”&lastrow44&”)。这将是第一个大步骤。X假设您想要的+11偏移量是从M(第13个字母)开始的致X(第24个字母)。
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 & ")"