为什么不能复制()
来源:微信公众号表妹的EXCEL
文章图片
最近有小伙伴向表妹提问:自己苦心选中的数据,为什么无法进行复制粘贴操作?经表妹仔细调查研究后,觉得此问题具有一定的共性(即其他小伙伴很有可能也会遇到),所以今天在这里和大家一起分享一下。
~~~~~~多重选定区域的分割线~~~~~~
问题描述
文章图片
-------------------------------------
原因分析
如上面的动图所示,通过定位功能定位目标单元格后,想进行复制粘贴操作时,EXCEL弹出了禁止提示“不能对多重选定区域执行此命令”,这是为什么呢?其实,问题就出在这个“多重选定区域”上!
多重选定区域:不连续且不在同一行/列上的单元格区域
EXCEL中的复制粘贴操作只能针对位于"连续的、在同一行上的或者在同一列上的"单元格进行,而对于Ctrl键+鼠标点选或者定位功能定位的非同行/列单元格,是不能进行的,所以才会弹出禁止提示。
文章图片
-------------------------------------
解决方案
【情况1】纯数字单元格
解决方法:复制全部数据--选择性粘贴--“加”运算
文章图片
-------------------------------------
【情况2】非纯数字单元格
解决方法:添加“宏”--复制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
End Sub
文章图片
-------------------------------------
运行效果:
文章图片
-------------------------------------
学会了上面的两种方法,小伙伴们以后在“复制多重选择区域”的问题上,就再也不会“一头雾水,四处求救”了。勤奋好学的小伙伴,赶快自己动手试试吧~~
文章图片
如果你觉得表妹的分享内容很实用,欢迎分享给其他小伙伴呦,独乐乐不如众乐乐嘛!
关注微信公众号“表妹的EXCEL”,每周一、三、五获取原创分享教程。加入“表妹的EXCELQQ群(345387282)”,和勤奋好学的小伙伴们一起快乐地学习EXCEL吧!
推荐阅读
- 2018-02-06第三天|2018-02-06第三天 不能再了,反思到位就差改变
- Docker应用:容器间通信与Mariadb数据库主从复制
- 为什么你的路演总会超时()
- 财商智慧课(六)
- 吃了早餐,反而容易饿(为什么?)
- 为什么越花钱的人越有钱,越舍不得花钱的人却越穷()
- dubbo基本认识
- 良心
- 为什么985/211的学生能胜任工作获得老板的青睐。
- 年轻人,干了孤独这杯酒