Excel精英培训网

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

[已解决]谁能帮我简化一下附件中的VBA代码?

[复制链接]
发表于 2013-4-11 23:17 | 显示全部楼层 |阅读模式
谁能帮我简化一下附件中的VBA代码?
最佳答案
2013-4-12 13:24
Sub 新建工程表格()
    Dim I%, Y%, sh As Worksheet
    On Error GoTo 10
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Y = InputBox("请输入工程数量")
    For Each sh In Sheets
        If Not InStr("汇总表sj", sh.Name) > 0 Then
        If sh.Name * 1 > Y Then sh.Delete
        End If
    Next
    For I = Sheets.Count - 1 To Y
        Sheets("1").Copy Before:=Sheets(Sheets.Count)
        ActiveSheet.Name = I
    Next
    Sheets(1).Select
    ThisWorkbook.Save
10  Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

模板.rar

49.01 KB, 下载次数: 9

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-12 08:51 | 显示全部楼层
很多对像都是可以直接操作的,不需要  select 他们再操作

现在能做的优化也就差不多是这些吧,你先自己试试?

评分

参与人数 1 +3 收起 理由
qjsu + 3 初学者,不懂你说什么

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-4-12 09:30 | 显示全部楼层
无聊的疯子 发表于 2013-4-12 08:51
很多对像都是可以直接操作的,不需要  select 他们再操作

现在能做的优化也就差不多是这些吧,你先自己试试 ...

没有附件啊亲~~~~~~~~~~~~~~~
回复

使用道具 举报

 楼主| 发表于 2013-4-12 09:31 | 显示全部楼层
无聊的疯子 发表于 2013-4-12 08:51
很多对像都是可以直接操作的,不需要  select 他们再操作

现在能做的优化也就差不多是这些吧,你先自己试试 ...

我能想到的优化都优化完毕了,剩下的不会了,我水平一般哈哈,大神帮弄一下呗,我对比着学习一下
回复

使用道具 举报

发表于 2013-4-12 09:55 | 显示全部楼层
qjsu 发表于 2013-4-12 09:30
没有附件啊亲~~~~~~~~~~~~~~~

我叫你自己试嘛,怎么会有附件给你呢!!
回复

使用道具 举报

发表于 2013-4-12 09:59 | 显示全部楼层
你那
Y = InputBox("请输入工程数量")
还没考虑容错呐!
取消输入就出错!
回复

使用道具 举报

 楼主| 发表于 2013-4-12 10:06 | 显示全部楼层
zjdh 发表于 2013-4-12 09:59
你那
Y = InputBox("请输入工程数量")
还没考虑容错呐!

是的,该加一段什么代码呢?
回复

使用道具 举报

发表于 2013-4-12 10:37 | 显示全部楼层
Sub 新建工程表格()
    Dim I%, Y$, sh As Worksheet
    On Error GoTo 10
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Y = InputBox("请输入工程数量")
    For Each sh In Sheets
        If Not InStr("汇总表sj", sh.Name) > 0 And sh.Name <> "1" Then sh.Delete
    Next
    For I = 2 To Y
        Sheets("1").Copy Before:=Sheets(Sheets.Count)
        ActiveSheet.Name = I
    Next
    Sheets(1).Select
    ThisWorkbook.Save
10  Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

评分

参与人数 1 +3 收起 理由
qjsu + 3 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-4-12 10:53 | 显示全部楼层
zjdh 发表于 2013-4-12 10:37
Sub 新建工程表格()
    Dim I%, Y$, sh As Worksheet
    On Error GoTo 10

额 ,我那个代码弱爆了,~~~~~~~~~~~~~~~~~
回复

使用道具 举报

 楼主| 发表于 2013-4-12 12:56 | 显示全部楼层
zjdh 发表于 2013-4-12 10:37
Sub 新建工程表格()
    Dim I%, Y$, sh As Worksheet
    On Error GoTo 10

代码有个小问题,就是当我发现新建的工程表格不够的时候,想再新建文档会删除以前已经新建的文档
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 07:06 , Processed in 0.289716 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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