前言|职场实例
大家在日常使用Excel表格中,经常会把一张表格中的部分数据复制粘贴到另一张表格,有时候会提示:Excel中不能对多重选定区域使用此命令的问题,造成了不能够复制的现象,下面小编就来教你如何解决Excel中不能对多重选定区域使用此命令的难题。
如下图所示,我们用一个简单的例子来做说明剖析:
我们想将左边表格中的A2,B3,C4,D5单元格中的数据一次性复制出来,粘贴到右边表格对应的位置。
当我们通过按住Ctrl键,选中不连续的单元格A2,B3,C4,D5单元格后,右击鼠标,点击“复制”按钮,发现会弹出一个错误提示:“无法对多重选择区域执行此操作”。复制粘贴以失败告终。
首先我们要知道Excel中的“多重选定区域”是指:进行多次选择确定下来的区域,也就是按下Ctrl键进行选择得到的区域。如下图所示:我们通过按住Ctrl键选中不连续的单元格B2,B4,B6单元格,注意此时选定区域都在一列(或一行)中,此时右击鼠标,可以实现正常的复制粘贴。
如下如所示:我们通过按住Ctrl键选中不连续的单元格B2,B4,B6单元格的同时,再次选中一个另一列的D6单元格。注意此时选定区域不在一列中,形成了多重区域,此时右击鼠标,点击“复制”按钮后,就会出现“无法对多重选择区域执行此操作”的错误提示。
方案|VBA代码解决方案
首先,我们依旧通过按住Ctrl键,选中不连续的单元格A2,B3,C4,D5单元格后,先不着急右击点击复制;而是右击工作表“Excel情报局”名称标签,接着点击“查看代码”,弹出VBA代码录入界面,将下面一段代码复制粘贴到VBA代码录入界面。
代码如下:
Sub 多重选定区域复制粘贴() On Error Resume Next Dim SRange() As Range, UPRange As Range, TRange As Range Dim i As Long, AreaNum As Long Dim MinR As Long, MinC As Long AreaNum = Selection.Areas.Count ReDim SRange(1 To AreaNum) MinR = ActiveSheet.Rows.Count MinC = ActiveSheet.Columns.Count For i = 1 To AreaNum Set SRange(i) = Selection.Areas(i) If SRange(i).Row < MinR Then MinR = SRange(i).Row If SRange(i).Column < MinC Then MinC = SRange(i).Column Next i Set UPRange = Cells(SRange(1).Row, SRange(1).Column) Set TRange = Application.InputBox(prompt:="请输入粘贴位置的左上角单元格", Title:="多重选定区域复制粘贴", Type:=8) Application.ScreenUpdating = False For i = 1 To AreaNum SRange(i).Copy TRange.Offset(SRange(i).Row - MinR, SRange(i).Column - MinC).PasteSpecial Paste:=xlPasteValues Next i Application.ScreenUpdating = TrueEndSub
点击上方的“运行-运行子过程/用户窗体”,会弹出一个提示框:”请输入粘贴位置的左上角单元格”,即我们要粘贴存放数据的起始位置。
如果我们想要保持粘贴数据的相对位置不变,需要将这个起始位置设置为:我们复制的不连续的单元格中最上方的单元格所在行的最左边单元格的位置,即F2单元格。在这个提示框里面点击自动识别单元格位置即可。
最后点击“确定”,即可实现数据的复制粘贴。如下图所示:
如果我们想继续复制左表数据源中的其他的不连续区域单元格,即可以继续重复上述的步骤操作即可。如下图所示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。