如何在复制/粘贴后禁用Excel的自动单元格引用更改?

Bat*_*son 42 excel reference copy-paste cell excel-formula

我有一个庞大的Excel 2003电子表格,我正在努力.有很多非常大的公式,有很多细胞参考.这是一个简单的例子.

='Sheet'!AC69+'Sheet'!AC52+'Sheet'!AC53)*$D$3+'Sheet'!AC49
Run Code Online (Sandbox Code Playgroud)

他们中的大多数都比这更复杂,但这可以很好地了解我正在使用的内容.这些细胞参考中很少是绝对的($ s).我希望能够将这些单元格复制到不同的位置,而不会更改单元格引用.我知道我可以简单地使用f4来使引用绝对,但是有很多数据我可能需要稍后使用Fill.有没有办法暂时禁用复制粘贴/填充更改单元格引用而不使引用绝对?

编辑:我刚刚发现你可以通过将单元格内容复制为文本而不是公式来对VBA执行此操作.我不想这样做,因为我想一次复制整行/列.我缺少一个简单的解决方案吗?

Whi*_*mey 54

来自http://spreadsheetpage.com/index.php/tip/making_an_exact_copy_of_a_range_of_formulas_take_2:

  1. 将Excel置于公式视图模式.最简单的方法是按Ctrl+ `(该字符是"向后撇号",并且通常位于具有〜(代字号)的相同键上.
  2. 选择要复制的范围.
  3. Ctrl+C
  4. 启动Windows记事本
  5. Ctrl+ V将复制的数据超过记事本
  6. 在记事本中,按Ctrl+ A后跟Ctrl+ C复制文本
  7. 激活Excel并激活要粘贴公式的左上角单元格.并确保要复制的工作表处于公式视图模式.
  8. Ctrl+ V粘贴.
  9. Ctrl+ `切换出公式视图模式.

注意:如果粘贴操作返回到Excel无法正常工作,则可能是您最近使用了Excel的文本到列功能,而Excel正在尝试通过记住您上次解析数据的方式来提供帮助.您需要启动"将文本转换为列向导".选择"分隔"选项,然后单击"下一步".清除除Tab外的所有Delimiter选项复选标记.

或者,来自http://spreadsheetpage.com/index.php/tip/making_an_exact_copy_of_a_range_of_formulas/:

If you're a VBA programmer, you can simply execute the following code: 
With Sheets("Sheet1")
 .Range("A11:D20").Formula = .Range("A1:D10").Formula
End With
Run Code Online (Sandbox Code Playgroud)

  • 这个答案很精彩 - 我希望我能接受它作为原始海报.我是一名程序员,所以VBA并没有吓到我,但我不打算只使用它来复制和粘贴一些单元格,如果我可以避免它......真的应该有一个"粘贴而不更新公式"选项构建进入Excel. (3认同)

Ali*_*ins 22

一个非常简单的解决方案是选择要复制的范围,然后选择查找和替换(Ctrl + h),更改=为公式中未使用的另一个符号(例如#) - 从而使其不再是活动公式.

然后,将所选范围复制并粘贴到其新位置.

最后,查找和替换将更改#=原始范围和新范围,从而将两个范围恢复为公式.

  • 到目前为止,遗憾的是,这是我最满意的解决方案.使用替代快捷方式可以很方便地完成此操作. (3认同)

小智 6

我来到这个网站寻找一种简单的方法来复制,而无需更改单元格引用.但现在我认为我自己的解决方法比大多数这些方法简单.我的方法依赖于Copy更改引用但Move不引用的事实.这是一个简单的例子.

假设您在A列和B列中有原始数据,在C中有公式(例如C = A + B),并且您希望在F列中使用相同的公式,但从C到F的复制会导致F = D + E.

  1. 将C的内容复制到任何空的临时列,例如R.相对引用将更改为R = P + Q但是即使将其标记为错误也会忽略它.
  2. 返回C并将其移动(不复制)到F.公式应保持不变,因此F = A + B.
  3. 现在转到R并将其复制回C.相对引用将恢复为C = A + B.
  4. 删除R中的临时公式
  5. 鲍勃是你的叔叔.

我已经用一系列单元格做到了这一点,所以我想它几乎可以用于任何复杂程度.你只需要一个空的区域来停放coiped细胞.当然,你必须记住你离开他们的地方.