在excel中复制和粘贴时是否可以模拟剪切属性?

时间:2016-09-17 00:43:50

标签: excel excel-vba vba

我正在尝试将一系列单元格复制粘贴到电子表格中的其他位置。 问题是,与cut-paste不同,当我使用复制粘贴时,我会丢失原始的单元格引用。我想知道是否有可能创造一种人造的" cut-paste"选项,但不删除原始数据,并且能够多次重复操作。

通过使用记事本或VBA代码复制公式,我找到了部分解决此问题的方法(如here所述)。但是,它仍然没有提供完整的解决方案,因为我仍然希望更改某些单元格 - 例如,应更新具有SUM函数的单元格,以便计算新粘贴的单元格的总和,而不是旧单元格的总和。这是剪切和粘贴选项能够实现的,但我无法通过复制粘贴找到任何并行方法。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为这可能对您有帮助!例如,您在Sheet2!B4处有一个这样的公式:

=IF(B2>A4,Sheet1!B4,B2/B12)

您想将其复制/粘贴到Sheet2!B5Sheet2!C5-当前工作表中,并且希望它成为(预期结果):

=IF(B2>A5,Sheet1!B5,B2/B12)        '=> for B5 (B2,B12: no changes & A4>A5: just row changes)
=IF(B2>A6,Sheet1!C6,B2/B12)        '=> for C6 (B2,B12: no changes & A4>A6: just row changes)

但是Excel这样做:

=IF(B3>A5,Sheet1!B5,B3/B13)        '=> for B5
=IF(C4>B6,Sheet1!C6,C4/C14)        '=> for C6

在这种情况下,我将公式更改为:

=IF(INDIRECT("B2")>INDIRECT(CONCATENATE("A", ROW())),Sheet1!B5,INDIRECT("B2")/INDIRECT("B12"))
  

注意:

     
      
  • 对于任何不应更改的参考,请使用INDIRECT("<refrence>")
  •   
  • 对于任何部分更改,您需要使用INDIRECT("<refrence>")并通过<reference>之类的函数分别生成ADDRESS()
  •