Vba 基于单元格值向表中插入行

Vba 基于单元格值向表中插入行,vba,excel,Vba,Excel,我试图让宏根据A2的值将特定数量的行添加到表中 例如: 如果A2=10,那么当我运行宏时,它应该插入10行 此外,作为宏的第二部分,我希望它复制前面单元格的公式 例如: A3= "='Sheet2'!A1" 如果我添加10行,那么以下行应该是连续的: A4= "='Sheet2'!A1" A5= "='Sheet2'!A2" A6= "='Sheet2'!A3" A7= "='Sheet2'!A4" A8= "='Sheet2'!A5" 等等 我知道典型的表格拖动会复制单元格,我想确保公式被

我试图让宏根据A2的值将特定数量的行添加到表中

例如:

如果A2=10,那么当我运行宏时,它应该插入10行

此外,作为宏的第二部分,我希望它复制前面单元格的公式

例如:

A3= "='Sheet2'!A1"
如果我添加10行,那么以下行应该是连续的:

A4= "='Sheet2'!A1"
A5= "='Sheet2'!A2"
A6= "='Sheet2'!A3"
A7= "='Sheet2'!A4"
A8= "='Sheet2'!A5"
等等


我知道典型的表格拖动会复制单元格,我想确保公式被复制到下一行。

这将复制并粘贴公式,如A3中所示,并按A2中输入的数字向下粘贴

ActiveWorkbook.Sheets(1).Cells.Range("A4:A" & Rows.Count).ClearContents
For i = 1 To ActiveWorkbook.Sheets(1).Cells(2, 1).Value
ActiveWorkbook.Sheets(1).Cells(3 + i, 1).Formula = ActiveWorkbook.Sheets(1).Cells(3, 1).FormulaR1C1
Next i

这就是你要找的吗?

所以你想插入10行,但只插入5个公式…?效果很好!我还有第二个问题要问。有没有办法在范围选择公式中使用“i”?我想能够做的是清除以前存在的单元格的内容,因此如果以前有10个单元格,现在有8个,那么它将清除多余的两个……希望这是有意义的。@user1664305更新了我的答案,根据我对答案的新编辑使用ClearContents。别忘了竖起大拇指!