我正在尝试复制具有相对行名称和列名称的公式。
我有包含 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
Run Code Online (Sandbox Code Playgroud)
但这只是从左侧单元格复制值
如果公式相同但不同,那就很容易了。所以我试图找到一种方法来动态引用始终位于左侧的单元格。
这是真正的公式之一
='Balance sheet'!B13*360/'P&L'!B2
Run Code Online (Sandbox Code Playgroud)
我想要下一个单元格是
='Balance sheet'!C13*360/'P&L'!C2
Run Code Online (Sandbox Code Playgroud)
我现在的代码是下一个单元格=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
Run Code Online (Sandbox Code Playgroud)
您应该注意,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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22355 次 |
| 最近记录: |