ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1191|回复: 6

关于VBA复制工作表,麻烦各位帮我看下哪里出了问题?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-3-6 11:28 | 显示全部楼层 |阅读模式
我想通过VBA实现根据A列的内容创建工作表。首先判断是否已经存在表名与A列单元格内容一样的工作表,如果有就保留,如果没有,就复制sheets(2),但是程序运行后,到sheets(1)第3行后的就有问题了,各位帮我看看怎么修改代码?另外,如果我想要工作表创建完成后,排序按照A列内容顺序排序,代码又怎么写呢?小弟第一次发帖,请论坛的兄弟姐妹们多多帮助。

Book1.zip (16.52 KB, 下载次数: 20)

TA的精华主题

TA的得分主题

发表于 2013-3-6 17:36 | 显示全部楼层
你的代码应该是没问题的。例子文件跑出来有问题是因为,你已经插了3个表。估计是单步调试造成的。
然后停下来从头运行,前面几个表是存在的,所以都很好的 执行了 Set wsh = Worksheets(b) 这句话的时候
wsh 指向一个工作表对象。而当循环到第4个表的时候,这句话其实没有执行因为出现了下标越界的错误,根据on error resume next所以直接执行下一句。而wsh 不是Null 而是指向了上一个表,因此if 判断永远为假。
你把所有的除了(1)(2) 之外的表删除,程序就正常了。
至于排序问题,你完全可以现在单元格区域完成排序,然后再执行复制,这样不就是名字排好序的?否则对工作表名称去排序执行起来麻烦的多。

TA的精华主题

TA的得分主题

发表于 2013-3-7 04:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
hehex 发表于 2013-3-6 17:36
你的代码应该是没问题的。例子文件跑出来有问题是因为,你已经插了3个表。估计是单步调试造成的。
然后停下 ...

+1说的很有道理

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-11 17:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢楼上的两位高手热心帮助。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 05:49 , Processed in 0.031489 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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