【问题标题】:Copy a Row and Paste only those Cells that contains Formula复制一行并仅粘贴那些包含公式的单元格
【发布时间】:2018-08-09 09:16:49
【问题描述】:

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

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

【问题讨论】:

  • 看起来您正在粘贴 xlPasteFormats,而不是 xlPasteFormulas。目前尚不清楚您要整体完成什么。请查看他的tour(您将获得您的第一个徽章!)以及“How to Ask”。请参阅help center 了解有关本网站主题的更多信息,另外重要的阅读内容是如何创建minimal reproducible example。你可以edit你的问题来澄清你有什么数据(用例子),你正在尝试做什么,以及你已经尝试过什么和**你卡在哪里“。更多tips here来自该网站的顶级用户。
  • 一个值是一个公式的输出,但只有当单元格中有一个公式时。如果不是,则 Excel 的属性值和公式是相同的。这意味着你想要点的东西不能像你想要的那样完成。粘贴公式也会粘贴值。解决方案:恐怕您需要循环选择中的所有单元格,检查它们是否以 = 开头,然后仅复制这些单元格。
  • 我也想保留格式,所以我使用 xlPasteFormats。 xlPasteFormulas 不起作用。它也会复制那些带有值的单元格。

标签: excel vba formulas named-ranges


【解决方案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

【讨论】:

  • :) 这是我关于堆栈溢出的第一个问题,我很欣赏快速而正确的响应。非常感谢。
【解决方案2】:

你应该这样做

wsInput.Rows(lrInputRange).EntireRow.SpecialCells(xlCellTypeFormulas).Copy Range.pastespecial xlpastevalues

萨西

【讨论】:

  • 这将无法按预期工作,因为公式单元格将被粘贴到相邻的单元格中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-26
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多