Excel 2007使用VBA将公式写入合并单元格
我有一个值列表,从G11开始,向下扩展一个可变长度列G。我有一个字符串数组,其中包含要平均的G列数据范围的地址。在从H11开始的H列中,我合并了希望显示平均值的单元格。要一起平均的G列单元格的数量也不同。我尝试的以下代码失败,因为公式是按原样输入的,而不是将ranges(I)数组值放入公式中Excel 2007使用VBA将公式写入合并单元格,vba,excel,excel-formula,Vba,Excel,Excel Formula,我有一个值列表,从G11开始,向下扩展一个可变长度列G。我有一个字符串数组,其中包含要平均的G列数据范围的地址。在从H11开始的H列中,我合并了希望显示平均值的单元格。要一起平均的G列单元格的数量也不同。我尝试的以下代码失败,因为公式是按原样输入的,而不是将ranges(I)数组值放入公式中 For i = 0 To range_num ActiveCell.Formula = "=AVERAGE(ranges(i))" Next i ranges()包含要平均的范围(以字符串形式)。
For i = 0 To range_num
ActiveCell.Formula = "=AVERAGE(ranges(i))"
Next i
ranges()包含要平均的范围(以字符串形式)。例如:
范围(i)=“G11:G15”
对于i=0
和range\u num
是将要进行的平均数
每个G列值仅包含在1个平均值中,每个要平均的值组是连续的,并且每个组直接位于合并单元格的左侧,我希望在该单元格中显示平均值。有人对我如何更好地格式化代码以实现这一点有什么见解吗?非常感谢您的建议。公式之所以输入“原样”,是因为您需要将其连接到字符串中
For i = 0 To range_num
ActiveCell.Formula = "=AVERAGE(" & ranges(i) & ")"
Next i
如果我的解释正确,那么您正在寻找一个代码片段,该代码片段将在一系列单元格中循环,并根据在另一个单元格中找到的文本字符串设置公式。请尝试以下操作:
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
ActiveCell.Formula=“=AVERAGE(&ranges(i)&”)”
?如果您附加一个工作表片段来帮助可视化问题,这会有所帮助。我有您的答案来提高其可读性。