2017-02-09 148 views
0
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代碼以使其更加動態。我想設置和數計算更加動態。所以我正在嘗試像Range("A" & LastRow3).End(xlDown).Offset(0, 11).Formula = "=Sum(("M" & LastRow3).End(xlDown).Offset(0, 11) & lastRow44 & ")" 這樣的自動將起始單元定義爲M50。然而,它不是我想要的。有什麼辦法可以修改代碼來計算開始單元格的動態值嗎?使用vba填充公式使用vba設置啓動單元格動態

謝謝!

+0

您用於定義.formula的公式需要更好的報價管理。=「= sum(M」&lastrow3&「:X」&lastrow44&「)」這將是第一大步。 – Cyril

+0

X假定你想要的偏移量+11從M(第13個字母)到X(第24個字母)。 – Cyril

回答

0

如何類似的東西:

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

嘗試改變

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 & ")" 

你的公式正在做的是首先設置到你定義的拉斯特羅,然後向下搜索(就像你按CTRL +向下箭頭)。如果這不符合您的要求,請嘗試刪除兩者中的「.END(xlDown」部分。

最後,如果您知道您使用的偏移量爲11,爲什麼不將它設置爲使用「M」而不是A ,並且根本不會抵消?

相關問題