复制行并仅粘贴包含公式的那些单元格

时间:2018-08-09 09:16:50

标签: excel vba formulas named-ranges

我有一个命名范围。我正在通过代码插入新行,并调整命名范围的大小。 有些列包含公式,有些列包含值。 我想从上述单元格复制公式。 下面是我的代码:

Sub InsertRow()
    Dim lrInputRange As Long
    Set wbMacro = ThisWorkbook
    Set wsInput = wbMacro.Sheets("INPUT")
    'Insert new row at bottom
    lrInputRange = wsInput.Range("Input_Range").Rows.Count
    wsInput.Rows(lrInputRange + 1).EntireRow.Insert shift:=xlUp
    wsInput.Rows(lrInputRange).EntireRow.Copy
    wsInput.Rows(lrInputRange + 1).PasteSpecial xlPasteFormats
    wsInput.Rows(lrInputRange).EntireRow.Copy
    'Here I want to paste only those cells that contains Formulas          
    Application.CutCopyMode = False
    'Resize the range
    ThisWorkbook.Names.Add Name:="Input_Range", _
    RefersTo:=Range("Input_Range").Resize(Range("Input_Range").Rows.Count + 1)       
End Sub

2 个答案:

答案 0 :(得分:1)

使用SpecialCells()选择没有公式的单元格并清除它们:

... your previuous code
wsInput.Rows(lrInputRange).EntireRow.Copy
wsInput.Rows(lrInputRange + 1).PasteSpecial
wsInput.Rows(lrInputRange + 1).SpecialCells(xlCellTypeConstants).ClearContents
'Resize the range
. rest of your code

答案 1 :(得分:0)

您应该执行以下操作

wsInput.Rows(lrInputRange).EntireRow.SpecialCells(xlCellTypeFormulas).Copy Range.paste特殊xlpaste值

Sasi