复制动态范围的公式

时间:2014-07-21 08:38:35

标签: excel excel-vba formula vba

我有一个宏将分割公式放在行“d”的单元格中,并在行“d”中一直复制相同的公式,直到最后一个单元格。 我试图在其他列“E:L”中复制相同的公式,而不必单独为每列重写整个代码

With wbk4.Sheets("USD")
Set clDest = .Range("D2")
Set clLookup = .Range("AA2")
End With

If clLookup.Offset(1, 0) <> vbNullString Then
rws = Range(clLookup, clLookup.End(xlDown)).Rows.Count
Set clDest = clDest.Resize(rws, 1)
End If
clDest.Formula = "=(" & clLookup.Address(False, False) & " / 3.68)"

这为所提到的列“D”的正确公式直到最后一个单元格。 我需要的是通过以下列“E”到“L”进行复制 只有从第二个细胞到最后一排。

我尝试通过以下逻辑来做到这一点,但它有点太复杂而且不起作用,我确定还有另一种方法:)

With wbk4.Sheets("USD")
lrow = .Range("D" & .Rows.Count).End(xlUp).Row
.Range("D2" & lrow).Copy
wbk4.Sheets("USD").Range("E2").PasteSpecial Paste:=xlPasteFormulas
End With

1 个答案:

答案 0 :(得分:1)

对于快速而肮脏的解决方案,只需更换

即可
Set clDest = clDest.Resize(rws, 1)

Set clDest = clDest.Resize(rws, x)

其中x是您要填充的列数。