Excel Selection.copy然后仅插入带有公式的行
在Excel中选择单元格后,我尝试仅使用Excel Selection.copy然后仅插入带有公式的行,excel,vba,Excel,Vba,在Excel中选择单元格后,我尝试仅使用公式插入新行 这就是我想做的 Sub InsertNewRow() ActiveCell.EntireRow.Select Selection.Copy Selection.Insert Shift:=xlDown Application.CutCopyMode = False End Sub 上面代码的结果是插入一个新行,但包含已复制的所有值和公式。是否有办法删除所有值并仅维护公式 编辑 根据@Tom的建议,我得出了一个
公式插入新行
这就是我想做的
Sub InsertNewRow()
ActiveCell.EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
End Sub
上面代码的结果是插入一个新行,但包含已复制的所有值和公式。是否有办法删除所有值并仅维护公式
编辑
根据@Tom的建议,我得出了一个结论
ActiveCell.EntireRow.Select
Selection.Insert
Selection.Offset(1, 0).EntireRow.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
但是它仍然复制所有的值和公式,有没有办法只复制公式并删除值?请测试下一个代码。无需在代码中选择
Sub InsertNewRow()
Dim rng As Range, cel As Range
Set rng = Range(ActiveCell, Cells(ActiveCell.row, Cells(ActiveCell.row, Columns.Count).End(xlToLeft).Column))
rng.Copy
ActiveCell.EntireRow.Insert Shift:=xlDown
For Each cel In rng
If Not cel.HasFormula Then cel.ClearContents
Next
End Sub
编辑:和下一个变体(由于…,更短更优雅):
看看.PasteSpecial
或AutoFill
我只想问你@Tom。我是否应该复制
插入
然后粘贴特殊
?是。复制所需的行。插入新行数,然后粘贴到该目的地谢谢我会立即尝试。您可以使用Range.SpecialCells
隔离值并清除它们。尝试5小时后,我现在可以告诉您。。。我想我爱你。真正地nice@ChangeWorld:很高兴我能帮忙!我编辑了代码答案并添加了一个较短的变体。。。
Sub InsertNewRow()
Dim rng As Range
Set rng = Range(ActiveCell, Cells(ActiveCell.row, Cells(ActiveCell.row, Columns.Count).End(xlToLeft).Column))
rng.Copy
ActiveCell.EntireRow.Insert Shift:=xlDown
rng.SpecialCells(xlCellTypeConstants).ClearContents
End Sub