分享

为什么不能复制

 Excel实用知识 2021-03-18

~~~~~~多重选定区域的分割线~~~~~~

问题描述


图片-------------------------------------

原因分析


如上面的动图所示,通过定位功能定位目标单元格后,想进行复制粘贴操作时,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

图片-------------------------------------

运行效果:

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多