我正在尝试复制具有相对行名称和列名称的公式。
我的基本列包含 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
但这只是从左侧单元格复制值
如果公式相同但不同,那就很容易了。所以我试图找到一种方法来动态引用始终位于左侧的单元格。
这是真正的公式之一
='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
关于vba - 用VBA复制Excel中的相对公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32724251/