VBA:水平和垂直运动使用循环动态范围
问题描述:
我要计算一个列中的10个条目的平均或总和或标准差或..说D3:D12和填充行直到Z列。 enter image description hereVBA:水平和垂直运动使用循环动态范围
第1部分: -
Sub hg()
Dim i As Long
Range("D13").Select
Do Until i = 20
i = i + 1
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-10]C:R[-1]C)"
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
Loop
End Sub
这我已经编码。是否有任何方法容易拖动边路?
我需要再继续第28行,第43行&等15行不同。
我能想到的是增加了两个 部分: -
Sub hg()
Dim i As Long
Range("D13").Select
Do Until i = 20
i = i + 1
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-10]C:R[-1]C)"
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
Loop
Cells(ActiveCell.Row + 15, ActiveCell.Column - 20).Select
End Sub
这是定向到28行,但不工作沿着这排填充。我无法指导垂直移动。
我不是严肃的编码员,但非常有兴趣学习。请帮助沿垂直方向填充。
答
您可以使用偏移()和环路在我现在成功地利用每一次迭代
Sub hg()
Dim i As Long`enter code here`
For i = 13 To 43 Step 15 '<--| change 43 to your actual last row to populate with formula
Range("D1:Z1").Offset(i-1).FormulaR1C1 = "=AVERAGE(R[-10]C:R[-1]C)"
Next
End Sub
最终代码步进15排是 子汞柱() 昏暗我只要 范围(“D13” )。选择 直到i = 10 i = i + 1 ActiveCell.FormulaR1C1 =“= AVERAGE(R [-10] C:R [-1] C)” Selection.Copy Range(Selection,Selection。 End(xlToRight))。Select Selection.PasteSpecial Paste:= xlPasteFormulas,Operation:= xlNone,_ 个SkipBlanks:=假,移调:=假 细胞(ActiveCell.Row,ActiveCell.Column + 1)。选择 细胞(ActiveCell.Row + 15,4)。选择 循环 结束子 –
您热烈鼓励,以避免避免选择/选择/ ActiveXXX模式并使用完全限定的范围参考。此外,复制/粘贴操作是一项昂贵的操作:您可能无法用少量数据或操作感知它,但您可能希望养成使用Value属性在范围之间复制值或直接编写公式的习惯。试试我的代码并让我知道 – user3598756