來源:微信公眾號表妹的EXCEL
最近有小伙伴向表妹提問:自己苦心選中的數(shù)據(jù),為什么無法進行復制粘貼操作?經(jīng)表妹仔細調(diào)查研究后,覺得此問題具有一定的共性(即其他小伙伴很有可能也會遇到),所以今天在這里和大家一起分享一下。
~~~~~~多重選定區(qū)域的分割線~~~~~~
問題描述
-------------------------------------
原因分析
如上面的動圖所示,通過定位功能定位目標單元格后,想進行復制粘貼操作時,EXCEL彈出了禁止提示“不能對多重選定區(qū)域執(zhí)行此命令”,這是為什么呢?其實,問題就出在這個“多重選定區(qū)域”上!
多重選定區(qū)域:不連續(xù)且不在同一行/列上的單元格區(qū)域
EXCEL中的復制粘貼操作只能針對位于"連續(xù)的、在同一行上的或者在同一列上的"單元格進行,而對于Ctrl鍵+鼠標點選或者定位功能定位的非同行/列單元格,是不能進行的,所以才會彈出禁止提示。
-------------------------------------
解決方案
【情況1】純數(shù)字單元格
解決方法:復制全部數(shù)據(jù)--選擇性粘貼--“加”運算
-------------------------------------
【情況2】非純數(shù)字單元格
解決方法:添加“宏”--復制VBA代碼--保存為“啟用宏的工作薄”
代碼如下:
Sub 多重選定區(qū)域復制粘貼()
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:="多重選定區(qū)域復制粘貼", 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
-------------------------------------
運行效果:
-------------------------------------
學會了上面的兩種方法,小伙伴們以后在“復制多重選擇區(qū)域”的問題上,就再也不會“一頭霧水,四處求救”了。勤奮好學的小伙伴,趕快自己動手試試吧~~
如果你覺得表妹的分享內(nèi)容很實用,歡迎分享給其他小伙伴呦,獨樂樂不如眾樂樂嘛!
關注微信公眾號“表妹的EXCEL”,每周一、三、五獲取原創(chuàng)分享教程。加入“表妹的EXCELQQ群(345387282)”,和勤奮好學的小伙伴們一起快樂地學習EXCEL吧!