excel - Selection.copy 然后仅使用公式插入行
问题描述
我试图仅Formula
在 Excel 中选择一个单元格后插入一个新行。
这就是我想要做的
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
编辑:和下一个变体(更短,更优雅,因此......):
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
推荐阅读
- apache-spark - Pyspark 的 repartition() (Dataframe API) 的奇怪行为
- android - Android/OkHttp3,基本身份验证方法的问题
- airflow - 我无法使用 Apache 气流发送失败的电子邮件
- arrays - 使用速记从数组中打印数据
- c# - 如何使用 LINQ 从子集合中选择所有项目
- php - 在 header.php 文件的 php 命令中添加 Google Ads 事件片段
- c# - 如何将razor生成的html转换成字符串?
- python - 如何在 tkinter gui 中的文本框输入中添加限制?
- scala - 更新元组列表
- reactjs - 如何将功能组件变成类组件?