ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 按模版表样控制不重复建新表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-1-10 10:46 | 显示全部楼层 |阅读模式
本帖最后由 xmtdabc 于 2013-1-10 11:08 编辑

a.JPG
问题:是按商品名称命名建立新表,不重复建立,没有新增商品是不建表,现在是没有新增商品时,建一个模板表。如何能控制住?

代码如下(本论坛找查的):

Sub 添加工作表()
    Dim arr, i&, Myr&, dic_sheet As Object, sheet As Worksheet   '定义变量
    Application.ScreenUpdating = False                                      '关闭屏幕刷新
    Set dic_sheet = CreateObject("Scripting.Dictionary")              '定义dic_sheet 为字典对象
    With Sheet1
        Myr = .Cells(Rows.Count, 3).End(3).Row                    '找到A列最后有数据的行
        arr = .Cells(11, 1).Resize(Myr, 11).Value                       '定义数组arr
    End With
    For Each sheet In Worksheets                                             '遍历工作表
        dic_sheet.Add sheet.Name, ""                                          '把工作表名存入字典
    Next
    For i = LBound(arr) To UBound(arr)                                      '在数组arr中循环
        If Not dic_sheet.exists(arr(i, 3)) Then                           '如果字典中不存在这个工作表名
            Sheet8.Copy After:=Sheets(Worksheets.Count)       '就在已有工作表的后面添加一个新工作表sheet8是模板
            Sheets(Worksheets.Count).Name = arr(i, 3)               '把这个新工作表重新命名
            dic_sheet(arr(i, 1)) = ""
        End If
    Next
    Set dic_sheet = Nothing                                                     '在内存中清除字典
    Sheet1.Activate                                                                 '激活SHEET1工作表
    Application.ScreenUpdating = True                                      '开启屏幕刷新
End Sub



简单进销存.rar (280.51 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-10 14:11 | 显示全部楼层
请高人出手求教

TA的精华主题

TA的得分主题

发表于 2013-1-10 14:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub 添加工作表()
  2.     Dim Arr, i&, Myr&, dic_sheet As Object, sheet As Worksheet   '定义变量
  3.     Dim Sht As Worksheet
  4.     Application.ScreenUpdating = False                                      '关闭屏幕刷新
  5.     Sheet1.Activate                                                                 '激活SHEET1工作表
  6.     Set dic_sheet = CreateObject("Scripting.Dictionary")              '定义dic_sheet 为字典对象
  7.     With Sheet1
  8.         Myr = .Cells(Rows.Count, 3).End(3).Row                    '找到A列最后有数据的行
  9.         Arr = .Cells(11, 1).Resize(Myr, 11).Value                       '定义数组arr
  10.     End With
  11.     For Each sheet In Worksheets                                             '遍历工作表
  12.         dic_sheet.Add sheet.Name, ""                                          '把工作表名存入字典
  13.     Next
  14.     For i = LBound(Arr) To UBound(Arr)                                      '在数组arr中循环
  15.         If Not dic_sheet.exists(Arr(i, 3)) And Arr(i, 3) <> "" Then                        '如果字典中不存在这个工作表名
  16.             Sheet8.Copy After:=Sheets(Worksheets.Count)       '就在已有工作表的后面添加一个新工作表sheet8是模板
  17.             Set Sht = ActiveSheet
  18.             Sht.Name = Arr(i, 3)               '把这个新工作表重新命名
  19.             'Sheets(arr(i, 3)).[A2] = arr(i, 3)
  20.             dic_sheet(Arr(i, 3)) = ""
  21.         End If
  22.     Next
  23.     Set dic_sheet = Nothing                                                     '在内存中清除字典
  24.     MsgBox "OK"
  25.     Application.ScreenUpdating = True                                      '开启屏幕刷新
  26. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-1-10 14:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请见附件。

简单进销存0110.rar

246.72 KB, 下载次数: 19

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-10 16:21 | 显示全部楼层
蓝桥玄霜 发表于 2013-1-10 14:39
请见附件。

非常感谢,经常看到高手在各个贴子中的经典回复。

TA的精华主题

TA的得分主题

发表于 2018-9-8 15:22 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
其实3楼代码有个问题:如果工作表名字是纯数字,那么代码只能成功运行一次。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 17:48 , Processed in 0.024393 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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