在excel日常使用时,您是否经常在复制时遇到“不能对多重选定区域使用此命令”而导致无法复制的情况?这个非常令人苦恼,因为经常是辛辛苦苦按着Ctrl键挨个选择了单元格准备复制,一旦无法复制还得重新一个一个的选择一遍。本例教你快速、永久性解决这个问题。

前期准备工作(包括相关工具或所使用的原料等)
Excel
操作过程:
先来说一下这个提示产生的原因:
1)用鼠标选择了非矩形区域;
2)虽然最终选区整体是矩形区域,但是每个选取不同。比如说先选中A1,点Ctrl再选择B1,然后用鼠标选择A2:B2,这样的区域也是复制不了的;
3)选择了正确的要复制区域,但是手一抖,多选择了一个单元格,如下图:

首先,按照下图所示方法在“个人宏工作簿”中录制一个空宏。


按Alt+F11打开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=True
Sub


返回Excel工作表界面,我们利用自定义快速访问工具栏的方法将该宏绑定在快速访问工具栏,这样以后可以直接点击调用。



操作完毕后,工具栏上将出现一个新的按钮。这样,基础工作就已经做好了。下面我们来测试一下具体功能。

用鼠标选择任意单元格区域(次序不论,按住Ctrl怎么选择都可以),如下图黄色单元格所示:

点击快速访问工具栏上刚刚插入的按钮,弹出如下提示:

我们只需要选择任意一个空单元格(想要粘贴区域的最左上角单元格),这时原选中区域的内容就按照原来的格式保持相对位置不变粘贴到了新的单元格区域。


上述方法优点:
1)任意选中区域可以原样粘贴到其他单元格;
2)可以完成将筛选状态单元格粘贴到同样筛选状态的表格中;
3)在要粘贴的区域只要数据不和选中区域冲突,不影响被粘贴区域其他单元格。这样可以实现修改部分数据后进行“更新”原始区域的功能。也就是只更新变动过的单元格内容,同时不影响被粘贴区域的字体格式、边框等。
注意事项
如果您觉得此经验有用,可以点击本页面右上方的【大拇指】图案和【收藏按钮】或者右下方的【分享】按钮,也可以点击本注意事项下方的【收藏】按钮。
如需要了解更多内容,可以百度搜索“百度经验shaowu459”或到百度知道向我提问。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本文系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
