【问题标题】:Formula alone copy paste without change公式单独复制粘贴不更改
【发布时间】:2018-04-01 07:31:25
【问题描述】:

我之前问过同样的问题。但我无法得到确切的结果。请帮助我通过 VBA 宏获得它。谢谢。

问题:
如何单独复制特定范围的公式(例如 A10:A20)并将其粘贴到下一列。我可以通过按 F2 对 Excel 中的单个单元格执行相同的操作,然后单独复制该公式并将其粘贴到下一列中。但是,如果我想选择一个范围并粘贴到下一列,我必须做什么?

请记住:答案不会改变,因为我选择了相同的公式。

【问题讨论】:

  • 使用 PasteSpecial
  • 您可以选择将absolute address$ 一起使用吗?假设您的公式是=A1 + 1,并且您将其复制到另一列,它将改变例如。到=B1 + 1。但是如果你使用像=$A$1 + 1 这样的绝对地址并复制它,那么它将保持=$A$1 + 1。所以通常这就是你要走的路。
  • 是的,老板。你说的对。我没有考虑过那个选项。谢谢。请帮助我解决我的其他问题。我希望这有点棘手。但这是我的收入逆转工作所必需的。

标签: vba excel excel-formula formulas


【解决方案1】:

要将公式从一个范围/列复制到另一个范围/列,您可以这样做:

Option Explicit

Sub CopyFormulasFromBtoC()
    With Worksheets("Sheet1")
        .Range("C:C").Formula = .Range("B:B").Formula
    End With
End Sub

这也适用于范围而不是列,但范围必须完全相同。

.Range("C1:C7").Formula = .Range("B1:B7").Formula

注意:
如果您可以选择在公式中使用absolute addresses,那么这将是替代上述宏的首选方式。

【讨论】:

  • @Rajesh 请考虑将此答案标记为解决方案,以便每个人都可以看到它已解决。
【解决方案2】:

examle of the excel page - c2 is the formula to c1

首先在公式中一定要使用“$”来使范围地址成为绝对地址

按钮代码是

Sub Button1_Click()
Sheets("Sheet1").Columns(3).Copy Destination:=Sheets("Sheet1").Columns(4)
End Sub

你也可以使用

Range("D:D").Value = Range("C:C").Value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 2018-04-08
    相关资源
    最近更新 更多