我正在处理大量的Excel 2003电子表格。有很多带有大量单元格引用的非常大的公式。这是一个简单的例子。

='Sheet'!AC69+'Sheet'!AC52+'Sheet'!AC53)*$D$3+'Sheet'!AC49

他们大多数都比这复杂,但这可以很好地说明我正在使用什么。这些单元格引用中很少有绝对($ s)。我希望能够在不更改单元格引用的情况下将这些单元格复制到其他位置。我知道我可以简单地使用f4使引用绝对化,但是有很多数据,以后可能需要使用Fill。有什么方法可以暂时禁用在复制粘贴/填充上更改单元格引用而不将引用设为绝对引用?

编辑:我刚刚发现,可以通过将单元格内容复制为文本(而不是公式)的方式使用VBA进行此操作。不过,我不想这样做,因为我想一次复制整个行/列。我有没有一个简单的解决方案?

最佳答案

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

  • 将Excel置于公式 View 模式。最简单的方法是按Ctrl +`(该字符是“向后撇号”,通常位于带有〜(波浪号)的同一键上。
  • 选择要复制的范围。
  • 按Ctrl + C
  • 启动Windows记事本
  • 按Ctrl + V将复制的数据粘贴到记事本中
  • 在记事本中,按Ctrl + A,然后按Ctrl + C复制文本
  • 激活Excel并激活要粘贴公式的左上单元格。并且,确保要复制到的工作表处于“公式查看”模式。
  • 按Ctrl + V粘贴。
  • 按Ctrl +`可以退出公式查看模式。

  • 注意:如果将操作粘贴回Excel不能正常工作,则可能是您最近使用了Excel的“文本到列”功能,并且Excel会通过记住上次解析数据的方式来提供帮助。您需要启动“将文本转换为列”向导。选择“定界”选项,然后单击“下一步”。清除除“制表符”之外的所有“定界符”选项复选标记。

    或者,从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
    

    09-04 11:59
    查看更多