作者:绿色风
分类:
时间:2022-08-17
浏览:673
楼主 chrisfang |
Q:如何复制数据到不连续的单元格区域中? A:一般情况下,在Excel工作表中复制的单元格数据只能粘贴在连续的目标单元格区域中。如果需要粘贴到指定的非连续单元格区域,可以借助VBA来实现。
方式一(包含源公式和格式,复制源区域支持单列中的连续或非连续单元格,粘贴目标区域支持单列或多列连续或非连续单元格。)
- Sub mypaste()
- Application.ScreenUpdating = False
- s = Selection.Count
- ReDim arr(s - 1)
- For Each Rng In Selection
- arr(i) = Rng.Address
- i = i + 1
- Next
- Range("xfd1").PasteSpecial (xlPasteAll)
- For i = 0 To s - 1
- Range("xfd1").Offset(i, 0).Cut
- Range(arr(i)).Select
- ActiveSheet.Paste
- Next i
- Application.ScreenUpdating = True
- End Sub
方式二(仅包含单元格数值,复制源区域支持单列中的连续或非连续单元格,粘贴目标区域支持单列或多列连续或非连续单元格。)
- Sub mypaste2()
- Set MyData = New DataObject
- Application.ScreenUpdating = False
- MyData.GetFromClipboard
- arr = Split(MyData.GetText(1), Chr(13) + Chr(10))
- i = 0
- For Each Rng In Selection
- Rng.Value = arr(i)
- i = i + 1
- Next
- Set MyData = Nothing
- Application.ScreenUpdating = True
- End Sub
不连续粘贴.rar
操作方法说明: 复制的时候按照系统正常的操作方法,选中单元格区域(同列中),按<Ctrl+C>复制或用菜单操作复制。 然后选定需要粘贴的目标单元格区域,可以是非连续的区域,再使用快捷键(<Ctrl+Shift+V>包含公式,<Ctrl+Shift+N>仅数值)调用宏程序即可粘贴。
|
2楼 calgo |
运行下载的例子,出现一个错误: 类Range 的PasteSpecial 方法无效。 有朋友遇到相同的问题吗,excel2007. |
3楼 iestore |
很好,没有问题。 楼上的不要直接点击“宏”的“执行”或“单步执行”,如果点击了就会出现你的情况。
楼主是在“宏”对话框里设置了快捷键(<Ctrl+Shift+V>包含公式,<Ctrl+Shift+N>仅数值的,自己使用快捷键就运行宏了。 当然你也可以自己设置。 |
4楼 Aozero_1 |
我的也出现2楼的情况,不知道怎么回事? 已解决,因是excel2003,没有xfd1单元格,改为iv1后,OK。 |
5楼 Aozero_1 |
而且Ctrl+Shift+N不能正确实现功能,请查证。 现上传附件,请指教,谢谢! Q2.1.zip |
6楼 syc7447 |
下载学习,正在解决这样的总题 |
7楼 yogiwang |
研究了好半天啊~~~ 不成功的问题所在是“引用”!
|
8楼 1548885750 |
值得学习啊 |
9楼 yf_home |
非常不错,学习了。 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一