在工作表上,将信息从一个地方复制和移动到另一个地方时,您可能想知道是否存在一种无需Excel即可更改选择中所有引用的复制或移动选择的方法。答案当然取决于它。 (您不只是喜欢Excel吗?)让我们看一下如何在Excel中复制和移动选择。

如果要复制选区,则粘贴时,Excel将更新选区中的所有相关参考。解决方案是在复制和粘贴之前,确保所选内容中的所有引用都是绝对的。手动更改公式很繁琐。您可以使用以下宏将所选内容中的所有公式转换为它们的绝对等价形式:

Sub ConvertToAbsolute()

Dim c As Variant     Application.ScreenUpdating = False     For Each c In Selection         c.Value = Application.ConvertFormula(c.Formula, _           xlA1, , xlAbsolute)

Next c     Application.ScreenUpdating = True End Sub

一旦运行此宏,您就可以复制和粘贴选择内容,而无需Excel对引用进行任何更新。粘贴完成后,您可以通过选择范围并应用此宏来更改选择中的参考(如果仍然存在,则在原始范围中):

Sub ConvertToRelative()

Dim c As Variant     Application.ScreenUpdating = False     For Each c In Selection         c.Value = Application.ConvertFormula(c.Formula, _           xlA1, , xlRelative, c)

Next c     Application.ScreenUpdating = True End Sub

此宏会将所选范围内的所有公式更改为其相对等价。请记住,这将影响所有公式-这意味着,如果该范围内的公式同时包含相对引用和绝对引用,那么完成此宏后它们将都是相对引用。

如果要移动选区,则Excel不会在移动中更新单元格引用。您可以通过选择范围并使用键盘(按Ctrl + X剪切,然后按Ctrl + V粘贴所选内容)或鼠标(将所选内容拖动到新位置)来移动。

无论哪种情况,Excel都会使选择中的引用完全相同(相对或不相同),而无需更新。

到目前为止,我已经讨论了Excel在复制或移动选择中的引用时如何处理。引用所选内容中的信息呢?如果要复制,则Excel会保留指向原始范围的引用。如果要移动选择,则Excel会更新对该选择的引用,而不管它们是相对引用还是绝对引用。如果您不希望在移动过程中更新信息,则解决方案是复制范围,然后删除原始范围。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(11804)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:

链接:/ excel-Pasting_without_Updating_References [粘贴而不更新引用]。