首页/办公软件

Excel如何批量粘贴不覆盖原来内容?

发布于:2023-04-29 16:00:02
21701人 分享

腿腿教学网-Excel如何批量粘贴不覆盖原来内容?


在Excel中批量粘贴不覆盖原来内容,可以使用两种方法:

腿腿教学网-Excel如何批量粘贴不覆盖原来内容?

 1、使用现有Excel功能设置 

右键选择已经填充数据的单元格,点击“选项”,在对话框中勾选“无限制填充”,然后点击“确定”进行确认。

此时,原有的数据会被新的填充覆盖,但是如果新的数据在现有的区域中,那么就会在原来的单元格的下方新增一行,将新的数据添加到新的单元格中,而不会覆盖原有的数据。

 2、使用VBA编程 

如果直接使用Excel功能对原来数据进行填充,在规模比较大的情况下,操作起来可能会比较麻烦,这时我们可以通过VBA进行相关设置,可以编写一个函数,用来判断新输入的数据是否在原有区域中,如果是,则在

原有单元格下方新增一行,将新的数据添加进去,不覆盖原有的数据。 

使用VBA实现上述功能,可以通过以下几步:

 1、打解VBE编辑器,在模块窗口中编写下面的函数:

 Function IsInArea(rngTarget as Range, rngSource as Range) as Boolean Dim retVal As Boolean '检查rngTarget是否存在于rngSource中 If Not Intersect(rngTarget, rngSource) Is Nothing Then    retVal = 

 True Else    retVal = False End If IsInArea = retVal End Function 

 2、编写想要使用的函数:

 Sub PasteWithoutOverwrite() Dim rngTarget As Range, rngSource As Range Dim destrow As Long '设置被填充数据的区域 Set rngSource = ThisWorkbook.Sheets("Sheet1").Range("A1:B10") '设置右键粘

 贴将要插入的数据 Set rngTarget = Selection '判断rngTarget在rngSource中是否存在 If IsInArea(rngTarget, rngSource) Then    '如果rngTarget存在,则在rngSource下方新增一行    destrow = 

 rngSource.Rows.Count + 1    '将粘贴的数据插入    rngTarget.Offset(destrow - rngTarget.Row).PasteSpecial xlPasteValues Else    '如果不存在,则将粘贴的数据插入    rngTarget.PasteSpecial xlPasteValues 

 End If End Sub 

 3、在工作表上右键选择新增的显示的区域,然后选择“宏”,选择“PasteWithoutOverwrite”即可实现刚刚编写的函数,右键粘贴时,系统会自动调用“PasteWithoutOverwrite”函数,不会覆盖原来的数据。 

 此外,在使用VBA实现上述功能时,也可以结合更多的功能,比如:自动检查被填充数据是否已经存在,根据数据量大小,自动增加行数,以保证新增的数据可以完全添加进去,等等。 

 综上所述,Excel中批量粘贴不覆盖原来内容,可以通过使用Excel功能设置中的“无限制填充”,以及编写VBA程序来实现,结合实际情况,我们可以根据自身情况,选择最适用的方式来实现,以避免有内容被覆盖的

 情况发生。

转载请注明来源本文地址:https://m.tuituisoft/office/38329.html

上一篇:没有了 下一篇:没有了