1、按下Alt+F8,给宏起名(比如copy),点击创建
2、新创建的宏主体部分是空白的,在sub和end sub之间粘贴以下脚本
Sub copy() ‘快捷键 Ctrl+r On Error GoTo ErrorHandler Application.CutCopyMode = False Selection.copy Dim co, ro, hi, wi As Integer ‘co起始列,ro起始行,hi需要合并的行数,wi需要处理的列数 co = Selection.Column ro = Selection.Row hi = Selection.Rows.Count wi = Selection.Columns.Count ActiveSheet.Cells(ro, co + wi).Select ‘如果需要向下粘贴单元格,注释掉上一行,并取消注释下面一行 ‘ActiveSheet.Cells(ro + hi, co).Select Dim m As Integer m = 0 m = InputBox("请输入您需要拷贝的数量", "请输入") While m > 0 If WorksheetFunction.CountA(Selection.Resize(hi, wi)) = 0 Then ActiveSheet.Paste End If ActiveCell.Offset(0, wi).Select ‘如果需要向下粘贴单元格,注释掉上一行,并取消注释下面一行 ‘ActiveCell.Offset(hi, 0).Select m = m - 1 Wend ActiveSheet.Cells(ro, co).Select ErrorHandler: End Sub
3、完成后关闭编辑窗口
4、按Alt+F8,选项,设置快捷键(比如Ctrl+r)
5、选中要复制的内容
6、Ctrl+r(自定义的快捷键),输入要复制的数量并回车执行
7、脚本将从当前区域右侧开始执行粘贴动作
8、复制过程中,遇到存在数据的区域,将会跳过(仍然计数)
注意事项:Excel需要启用宏
本文出自 “foolishfish” 博客,请务必保留此出处http://foolishfish.blog.51cto.com/3822001/1387635
通过VBA实现Excel批量克隆单元格,布布扣,bubuko.com
原文:http://foolishfish.blog.51cto.com/3822001/1387635