移动公式

时间:2017-10-23 21:32:23

标签: excel vba excel-vba formulas

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

Sub LastRowInOneColumn()

'Updateby20150305

    Dim xLastRow As String

    With Application.ActiveSheet

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

    End With

    MsgBox xLastRow

End Sub

我甚至可以将它们移动到同一工作表中的新位置,但他们只需要维护其单元格位置。是否有任何简单的方法可以一次性移动它们?

1 个答案:

答案 0 :(得分:1)

通常,当您将公式从一个单元格复制到另一个单元格时,Excel会尝试“帮助”#34;你通过调整单元格引用。例如,假设我们在 Sheet1 的单元格 E1 中有以下公式:

=A1+A2

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

=A2+A3

因此,粘贴的公式调整了细胞并引用了新表格中的单元格!

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

=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