簡體   English   中英

Excel 2007使用VBA將公式寫入合並的單元格

[英]Excel 2007 using VBA write formula to merged cells

我有一個從G11開始並在G列下延伸可變長度的值列表。我有一個字符串數組,其中包含要平均的G列數據范圍的地址。 在從H11開始的H列中,我合並了要顯示平均值的單元格。 要一起平均的G列單元的數量也有所不同。 我嘗試的以下代碼失敗了,因為按原樣輸入了公式,而不是將range(i)數組值放入公式中。

For i = 0 To range_num
    ActiveCell.Formula = "=AVERAGE(ranges(i))"
Next i

range()包含要求平均值的范圍(以字符串形式)。 例如:

ranges(i) = "G11:G15"

i = 0range_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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM