移动公式的简单方法

Easy way to move formulas

任何人都知道将公式从一个作品sheet 移动到另一个作品sheet,同时保持其位置和作品sheet 信息的快速简便方法。我有一个预算 sheet 可以在一列中搜索输入的最后一位数据,但是该列中的公式会干扰脚本。我使用的脚本是这样的:

Sub LastRowInOneColumn()

'Updateby20150305

    Dim xLastRow As String

    With Application.ActiveSheet

         xLastRow = .Cells(.Rows.Count, "B").End(xlUp).Row

    End With

    MsgBox xLastRow

End Sub

我什至可以将它们移动到同一个工作中的新位置sheet,但它们只需要保持它们的单元位置即可。有什么简单的方法可以一次全部移动吗?

通常当您将公式从一个单元格复制到另一个单元格时,Excel 会尝试通过调整单元格引用来 "help" 您。例如,假设我们在 Sheet1 的单元格 E1 中有公式:

=A1+A2

我们将其复制到 Sheet2 单元格 E2 我们得到:

=A2+A3

所以粘贴的公式调整了单元格并引用了新单元格 sheet!

我们可以使用以下方法解决第二个问题:

=Sheet1!A1+Sheet1!A2

Sheet1 中。我们可以使用:

而不是将公式从一个单元格复制到另一个单元格
Sub ExactCopyFormula()
    Sheets("Sheet2").Range("E2").Formula = Sheets("Sheet1").Range("E1").Formula
End Sub

编辑#1:

这是在指定范围内循环的代码:

Sub Copy2()
    Dim r As Range

    Application.ScreenUpdating = False
    For Each r In Sheets("Sheet1").Range("A1:D9000")
        addy = r.Address(0, 0)
        Sheets("Sheet2").Range(addy).Formula = r.Formula
    Next r
    Application.ScreenUpdating = True
End Sub