Excel精英培训网

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

[已解决]如何用VBA调用设计好的Excel模板?

[复制链接]
发表于 2016-5-11 14:52 | 显示全部楼层 |阅读模式
    sheet1是设计好的Excel模板,现在需要生成分站1-分站10,10个sheet,且每个sheet用“分站1”……“分站10”命名,同时每个分站调用sheet1中设计好的模板,各位大神,这个如何实现?
最佳答案
2016-5-11 19:52

Sub test()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Call DelSheet
    Call AddSheet
End Sub

Sub DelSheet()
    Dim x
    For Each x In Sheets
        If x.Name <> "模板" Then x.Delete
    Next
End Sub

Sub AddSheet()
    Dim i
    For i = 1 To 3    '如果不止3个,自行修改
        Sheets("模板").Copy after:=Sheets(i)
        With Sheets(i + 1)
            .Name = "分站" & i
            .Shapes("add").Delete
        End With
    Next i
    Sheets("模板").Activate
End Sub

源文件数据2.rar (33.29 KB, 下载次数: 60)

源文件数据.rar

13.06 KB, 下载次数: 25

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-5-11 17:25 | 显示全部楼层
QQ截图20160511171421.jpg


1)表1是从系统导出的吗?

2)如果是手动完成,将要做些什么?建议手动完成分站1,以便理解
回复

使用道具 举报

 楼主| 发表于 2016-5-11 17:55 | 显示全部楼层
爱疯 发表于 2016-5-11 17:25
1)表1是从系统导出的吗?

2)如果是手动完成,将要做些什么?建议手动完成分站1,以便理解

1、不是的,第一张工作表“模板”是手动设计的;
2、要实现的结果是:能够自动生成分站1-分站10,这10个表格,且这10个表格是调用“模板”的格式~
回复

使用道具 举报

发表于 2016-5-11 18:09 来自手机 | 显示全部楼层
有几个就生成几个表,每个分站表保留公有区域和自己分站的列,是吗?
回复

使用道具 举报

 楼主| 发表于 2016-5-11 18:24 | 显示全部楼层
爱疯 发表于 2016-5-11 18:09
有几个就生成几个表,每个分站表保留公有区域和自己分站的列,是吗?

是这样的,通过调用“模板”的格式,生成分站1至分站10,10张表,这10张表的名称分别为分站1-分站10。
在新生成的表格中不必为每个分站设置自己的列,简单的来说,就是如何复制“模板”的格式。
哎吆,感觉自己表达有问题。。。。
辛苦了!!!
回复

使用道具 举报

发表于 2016-5-11 19:52 | 显示全部楼层    本楼为最佳答案   

Sub test()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Call DelSheet
    Call AddSheet
End Sub

Sub DelSheet()
    Dim x
    For Each x In Sheets
        If x.Name <> "模板" Then x.Delete
    Next
End Sub

Sub AddSheet()
    Dim i
    For i = 1 To 3    '如果不止3个,自行修改
        Sheets("模板").Copy after:=Sheets(i)
        With Sheets(i + 1)
            .Name = "分站" & i
            .Shapes("add").Delete
        End With
    Next i
    Sheets("模板").Activate
End Sub

源文件数据2.rar (33.29 KB, 下载次数: 60)
回复

使用道具 举报

发表于 2016-5-11 19:53 | 显示全部楼层
是不是这样的按Alt+F8运行
  1. Application.DisplayAlerts = False
  2. For Each sht In Worksheets
  3.     If sht.Name <> "模板" Then
  4.     sht.Delete
  5.     End If
  6. Next
  7.     Set sht = Sheets(1)
  8.     For i = 1 To 10
  9.     sht.Copy after:=Sheets(i)
  10.     ActiveSheet.Name = "分站" & i
  11.     Next i
复制代码

源文件数据1.rar

17.26 KB, 下载次数: 23

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 22:33 , Processed in 0.528945 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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