VBA / Excel : 可以动态复制公式

VBA / Excel : Possibility to copy formula dynamically

我想将公式从一个单元格复制到同一行中的另一个单元格 VBA,

例如

E1 = "=(E441+E747+E750)*-1"
to
  F1 -> = "=(F441+F747+F750)*-1"

但是这个代码片段:

Dim r As Excel.Range
Dim lRow As Long


lRow = tbXlApp.WorksheetFunction.Match("Test", Range("C:C"), 0)

'Line 4
tbXlWs.Cells(lRow, 5).Formula = "=(E441+E747+E750)*-1"

For Each r In tbXlWs.Range(tbXlWs.Cells(lRow, 6), tbXlWs.Cells(lRow, 4 + x))
    r.Formula = tbXlWs.Cells(lRow, 5).Formula
Next r

简单地粘贴第4行定义的单元格的公式。

回顾这个例子,结果是

   E1 = "=(E441+E747+E750)*-1"
   to
     F1 -> = "=(E441+E747+E750)*-1

但在这种情况下应该是F列。我需要更改什么?

谢谢!

'Line 4
tbXlWs.Cells(lRow, 5).Formula = "=(E441+E747+E750)*-1"

将此更改为

tbXlWs.Cells(lRow, 5).Formula = "=(F441+F747+F750)*-1"

您可以一次设置公式:

Dim lRow As Long

lRow = tbXlApp.WorksheetFunction.Match("Test", Range("C:C"), 0)

'Line 4
tbXlWs.Range(tbXlWs.Cells(lRow, 5), tbXlWs.Cells(lRow, 4 + x)).Formula = "=(E441+E747+E750)*-1"

然后根据相关列调整每个公式,就像您在 Excel 中复制它一样。