Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: hhxq001

[VBA] 分享个人审批表-宏批量生成的方法

  [复制链接]
发表于 2014-8-16 17:56 | 显示全部楼层
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2014-8-16 18:18 | 显示全部楼层
hhxq001 发表于 2014-8-15 23:00
是滴呢,看看5楼的怎么解决。

只要插入:
    If Sheets.Count < 5 Then
        MsgBox "你还没有生成报表!"
        Exit Sub
    End If
回复

使用道具 举报

 楼主| 发表于 2014-8-16 19:41 | 显示全部楼层
zjdh 发表于 2014-8-16 18:18
只要插入:
    If Sheets.Count < 5 Then
        MsgBox "你还没有生成报表!"

做一下哦,不知道在哪儿插
回复

使用道具 举报

发表于 2014-8-16 22:34 | 显示全部楼层
Private Sub 另存一遍_Click()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    If Sheets.Count < 5 Then
        MsgBox "你还没有生成报表!"
        Exit Sub
    End If
    Workbooks.Add
    For i = Sheets.Count To 2 Step -1
    Sheets(i).Delete

    Next

    With ThisWorkbook
        .Sheets(1).Cells.Copy ActiveSheet.Range("A1")
        ActiveSheet.Name = .Sheets(1).Name

        ActiveSheet.Buttons.Delete

        For i = 2 To .Sheets.Count
            Sheets.Add(After:=Sheets(i - 1)).Name = .Sheets(i).Name
            .Sheets(i).Cells.Copy ActiveWorkbook.Sheets(i).Range("A1")
        Next
    End With
    Do
        fname = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls), *.xls")   '选择另存报表的位置
    Loop Until fname <> False

     For Each ws In Worksheets
     If ws.Name Like "生成工具*" Then     '删除带"生成工具*"关键字的表
        ws.Delete

        Worksheets("花名册-数据源-勿删").Delete      '删除模板
        Worksheets("花名册模板-勿删").Delete
        Worksheets("审批表模板-勿删").Delete


    End If
    Next
    ActiveWorkbook.SaveAs fname

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

    MsgBox "报表另存完毕!"
End Sub

回复

使用道具 举报

发表于 2014-8-17 08:41 | 显示全部楼层
su45 发表于 2014-8-16 22:34
Private Sub 另存一遍_Click()
    Application.ScreenUpdating = False
    Application.DisplayAlerts  ...

错啦!应该这样插,道理你自己明白。
Private Sub 另存一遍_Click()
    If Sheets.Count < 5 Then
        MsgBox "你还没有生成报表!"

        Exit Sub
    End If
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Workbooks.Add
    For i = Sheets.Count To 2 Step -1
    Sheets(i).Delete
    ..................

回复

使用道具 举报

 楼主| 发表于 2014-8-17 10:29 | 显示全部楼层
发现你们说的位置都可以哦,有区别吗?

另外点击生成按钮生成的花名册的工作表标签颜色为红色,能在代码里改为无色或其他颜色吗?
回复

使用道具 举报

发表于 2014-8-17 13:12 | 显示全部楼层
hhxq001 发表于 2014-8-17 10:29
发现你们说的位置都可以哦,有区别吗?

另外点击生成按钮生成的花名册的工作表标签颜色为红色,能在代码 ...

当然不一样!你不明白,14楼他知道!
回复

使用道具 举报

发表于 2014-8-17 13:23 | 显示全部楼层
     Private Sub 生成新花名册_Click()
        ......
     
     With SH
        .Tab.ColorIndex = -4142
        ......
        End With
    End Sub

    Private Sub 多人一表_Click()
      ...........

    Sheets("审批表模板-勿删").Copy After:=Sheets(Sheets.Count)
    Set SH = ActiveSheet
    SH.Tab.ColorIndex = -4142
    If n = 1 Then  
                  
     ..........
   End Sub
回复

使用道具 举报

发表于 2014-8-17 15:43 | 显示全部楼层
zjdh 发表于 2014-8-17 08:41
错啦!应该这样插,道理你自己明白。
Private Sub 另存一遍_Click()
    If Sheets.Count < 5 Then

确实,咱没想那么多!
回复

使用道具 举报

 楼主| 发表于 2014-8-17 21:43 | 显示全部楼层
zjdh 发表于 2014-8-17 13:23
Private Sub 生成新花名册_Click()
        ......
     

谢谢,相当好,佩服。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 04:04 , Processed in 0.602981 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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