我有一个从G11开始并在G列下面扩展可变长度的值列表。我有一个字符串数组,其中包含要平均的G列数据范围的地址。在从H11开始的H列中,我合并了我想要显示平均值的单元格。要平均在一起的G列单元的数量也会变化。我尝试下面的代码失败了,因为公式是按原样输入的,而不是将范围(i)数组值放入公式中。
For i = 0 To range_num
ActiveCell.Formula = "=AVERAGE(ranges(i))"
Next i
ranges()包含要平均的范围(以字符串形式)。例如:
ranges(i) = "G11:G15"
i = 0
的和range_num
是将要完成的平均次数。
每个G列值仅包含在1个平均值中,每个要平均的值组是连续的,并且每个组直接位于合并单元格的左侧,我希望平均值出现在该位置。有没有人对如何更好地格式化我的代码来实现这一点有一些见解?任何想法都表示赞赏,谢谢。
答案 0 :(得分:3)
公式“按原样”输入的原因是因为您需要将其连接到字符串中。
For i = 0 To range_num
ActiveCell.Formula = "=AVERAGE(" & ranges(i) & ")"
Next i
答案 1 :(得分:0)
如果我已正确解释,您正在寻找一个代码片段,它将遍历一系列单元格,并根据在另一个单元格中找到的文字字符串设置公式。请尝试以下方法:
sub SetCellFormulas()
dim sWS as worksheet
dim aCell as range
dim aRange as range
dim Lrow as long
set sws = thisworkbook.sheets("yourworksheetname")
'*** Locate last cell with values in column G
lrow = sws.Range("G11").end(xldown).row
'*** Set range to loop through
set arange = sws.Range("G11:G" & Lrow)
for each acell in arange
'*** set formula of cell 1 to the left of G to the concatenated formula
aCell.offset(0,1).formula = "=AVERAGE(" & acell.value & ")"
next acell
end sub