我想用VBA将一个Formular从一个Cell复制到另一个Cell,
e.g。
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列。我需要改变什么?
谢谢!
答案 0 :(得分: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中复制它一样。
答案 1 :(得分:0)
'Line 4
tbXlWs.Cells(lRow, 5).Formula = "=(E441+E747+E750)*-1"
将此更改为
tbXlWs.Cells(lRow, 5).Formula = "=(F441+F747+F750)*-1"