2016-10-10 95 views
0

首先在這裏發表,並在VBA非常新。vba-平均移動單元格

我正在尋找創建一個平均最後4個單元格在一行中的宏,但最後一個單元格將永遠是一個向右的,因爲它將是一個新的一週。

試圖玩弄結束(xlright)和這裏就是我的GOT雖然他們顯然有一個錯誤的地方:

ActiveCell.FormulaR1C1 = "=AVERAGE(End(xlRight).Offset(-4):End(xlRight))"

在所有的任何幫助是極大的讚賞。

謝謝!

+2

'= AVERAGE(INDEX(1:1,MATCH(1E + 99 ,1:1)-3):INDEX(1:1,MATCH(1E + 99,1:1)))' –

+0

好吧,我沒有按照「結束」邏輯走向正確的方向嗎? – Isjacobe

+2

您正在混合vba和工作表公式。它不這樣工作。 –

回答

0

對於行#1,而不VBA

=AVERAGE(OFFSET(A1,0,COUNT(1:1),1,0-5)) 

enter image description here

與VBA

所以:

Sub dural() 
    MsgBox Evaluate("AVERAGE(OFFSET(A1,0,COUNT(1:1),1,0-5))") 
End Sub 
+0

嘿加里的學生 - 你能向我解釋寬度位嗎?對0-5的範圍感到困惑,以及它如何帶回最後4個(它絕對是這樣做的,謝謝!)對於我來說新手道歉。 – Isjacobe