2016-10-10 77 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