在VBA中复制相关的公式
我试图复制具有相对的行和列名称的公式。
我有10个公式的基列,我试图在右边的列上复制公式5次。
因此,例如在基础列中,我有这个公式= A1 + B1,我想做下一个单元这个= B1 + C1下一个= C1 + D1等等。
我有这个代码
For i = 1 To Range("B1").Value For j = 1 To 10 Sheet2.Cells(5 + j, 2 + i).FormulaR1C1 = "=c[-1]" Next j Next i
但是这只是从左边的单元格复制价值
如果公式相同但是不同,那将很简单。 所以即时通讯试图find一种方式来dynamic引用总是离开细胞。
这是真正的公式之一
='Balance sheet'!B13*360/'P&L'!B2
我想要下一个细胞
='Balance sheet'!C13*360/'P&L'!C2
和代码我现在有下一个单元格=B3
如果要将公式复制到右侧,可以使用fill
操作完成。 所以你的公式在你的基准行和基准列定义的单元格中,并且在你的问题中使用相对寻址,只需要:
Option Explicit Sub foo() Const lBaseColumn As Long = 3 Const lBaseRow As Long = 6 Const lRpts As Long = 10 Cells(lBaseRow, lBaseColumn).Resize(columnsize:=lRpts).FillRight End Sub
你应该注意到,你可以从多行FillRight
,如果这是你需要做的。 以下将填写C6:C10到L6:L10
Option Explicit Sub foo() Const lBaseColumn As Long = 3 Const lBaseRow As Long = 6 Const lColRpts As Long = 10 Const lRows As Long = 5 Cells(lBaseRow, lBaseColumn).Resize(rowsize:=lRows, columnsize:=lColRpts).FillRight End Sub
这两行将从左侧单元格复制公式/内容并复制到参考单元格中。 这也将相关参考复制公式
Range(refCellID).Offset(0,-1).Copy Range(refCellID).PasteSpecial