简单的方法来移动公式

任何人都知道将公式从一个工作表移动到另一个工作表,同时保持他们的位置和工作表信息的快速和简单的方法。 我有一个预算工作表,用于search列中input的最后一位数据,但该列中的公式会干扰脚本。 我使用的脚本是这样的:

Sub LastRowInOneColumn() 'Updateby20150305 Dim xLastRow As String With Application.ActiveSheet xLastRow = .Cells(.Rows.Count, "B").End(xlUp).Row End With MsgBox xLastRow End Sub 

我甚至可以将它们移动到同一工作表中的新位置,但只需要维护其单元格位置。 有没有简单的方法一次把它们全部移动?

通常,当您将公式从一个单元格复制到另一个单元格时,Excel会尝试通过调整单元格引用来“帮助”您。 例如,假设我们在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