Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 6268|回复: 11

[已解决]求助:隔行插入,且复制某一单元格的内容到新行

[复制链接]
发表于 2012-11-29 09:49 | 显示全部楼层 |阅读模式
本帖最后由 善良的人类 于 2012-11-29 10:38 编辑

最好能用VBA实现以下功能:
在打开Excel的时候能弹出一个对话框,可提供操作者输入3个值:
1、从第几行开始执行隔行插入
2、总共执行多少次的隔行插入
3、要复制的单元格是什么

详见附件,客户要求在文档中隔行插入PRODUCT KEY(居中加粗),总行数有时候是10k、20k、40k,另外一个问题是 当行数是40k时隔行插入后就变成了80k已经超过了单个sheet的最大行数(65536),能否利用VBA实现自动将隔行插入后的80k分为多个sheet呢?
最佳答案
2012-11-29 10:14
40k的可以在2007版运行
产品密码10K.rar (276.12 KB, 下载次数: 25)

产品密码10K.zip

285.58 KB, 下载次数: 12

产品密钥

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2012-11-29 09:53 | 显示全部楼层
求代码啊。。救命的呢~~  SOS 请各位大侠帮忙
回复

使用道具 举报

发表于 2012-11-29 09:56 | 显示全部楼层
一个表格引发的命案?呵呵,我帮你写一个
回复

使用道具 举报

发表于 2012-11-29 10:11 | 显示全部楼层
Sub 隔行插入()
Dim t1, t2, t3, x
t1 = Application.InputBox("请输入从第几行开始执行隔行插入", "插入提示")
t2 = Application.InputBox("请输入插入的次数", "插入提示")
t3 = Application.InputBox("请输入插入的字符串", "插入提示")
For x = Val(t2) + Val(t1) To t1 + 1 Step -1
  Rows(x).Insert
  Cells(x, 1) = t3
Next x
End Sub
回复

使用道具 举报

发表于 2012-11-29 10:14 | 显示全部楼层    本楼为最佳答案   
40k的可以在2007版运行
产品密码10K.rar (276.12 KB, 下载次数: 25)
回复

使用道具 举报

 楼主| 发表于 2012-11-29 10:53 | 显示全部楼层
谢谢蓝色幻想和zjdh两位的热心帮助,但是。。。貌似和期待的结果还是有出入,可能是我描述有误,所以我把求助的内容重新明确了下——

如附件,PRODUCT KEY 是居中 宋体11号 加粗的  而且占据了A到D列,也就是说是有一定格式的,而这个格式客户以后还可能会变,而使用你们提供的方法出来的只是一个简单不加粗字体的字符串插入

所以可不可以换个思路再帮个忙,比如
插入后拷贝某一个先前已有的单元格,这个单元格的内容之前手动定好;

或者你们有更好的思路 能完成该实现也行嗒
回复

使用道具 举报

 楼主| 发表于 2012-11-29 10:56 | 显示全部楼层
zjdh 发表于 2012-11-29 10:14
40k的可以在2007版运行

谢谢蓝色幻想和zjdh两位的热心帮助,但是。。。貌似和期待的结果还是有出入,可能是我描述有误,所以我把求助的内容重新明确了下——

如附件,PRODUCT KEY 是居中 宋体11号 加粗的  而且占据了A到D列,也就是说是有一定格式的,而这个格式客户以后还可能会变,而使用你们提供的方法出来的只是一个简单不加粗字体的字符串插入

所以可不可以换个思路再帮个忙,比如
插入后拷贝某一个先前已有的单元格,这个单元格的内容之前手动定好;

或者你们有更好的思路 能完成该实现也行嗒

回复

使用道具 举报

 楼主| 发表于 2012-11-29 10:57 | 显示全部楼层
兰色幻想 发表于 2012-11-29 10:11
Sub 隔行插入()
Dim t1, t2, t3, x
t1 = Application.InputBox("请输入从第几行开始执行隔行插入", "插入 ...

谢谢蓝色幻想和zjdh两位的热心帮助,但是。。。貌似和期待的结果还是有出入,可能是我描述有误,所以我把求助的内容重新明确了下——

如附件,PRODUCT KEY 是居中 宋体11号 加粗的  而且占据了A到D列,也就是说是有一定格式的,而这个格式客户以后还可能会变,而使用你们提供的方法出来的只是一个简单不加粗字体的字符串插入

所以可不可以换个思路再帮个忙,比如
插入后拷贝某一个先前已有的单元格,这个单元格的内容之前手动定好;

或者你们有更好的思路 能完成该实现也行嗒

回复

使用道具 举报

发表于 2012-11-29 11:33 | 显示全部楼层
改自4楼
Sub 隔行插入3()
Dim t1, t2, t3, x
t1 = Application.InputBox("请输入从第几行开始执行隔行插入", "插入提示")
t2 = Application.InputBox("请输入插入的次数", "插入提示")
t3 = Application.InputBox("请输入要复制的单元格,默认为A1", "插入提示", "A1")
For x = Val(t2) + Val(t1) To t1 + 1 Step -1
   Rows(x).Insert
   Range(t3).Copy Cells(x, 1)
Next x
End Sub
回复

使用道具 举报

发表于 2012-11-29 11:35 | 显示全部楼层
不过,要做好思想准备,你几十K的数据,等做完得多去泡几杯茶来喝
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 12:22 , Processed in 1.330707 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表