Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

工作中常用的Excel函数公式,全印在一张超大鼠标垫上
查看: 1658|回复: 57

[已解决] 人员信息录入,求大神写信息汇总及生成唯一编码 的代码?

[复制链接]
发表于 2019-10-25 19:06 | 显示全部楼层 |阅读模式
本帖最后由 caizhiliang 于 2019-11-3 10:34 编辑

感谢大神鼎力相助
4eb37ab9e45dc2f647759dd8db5bfcc.png
8295c32f8e54e6dc9fcfb5ff7b17982.png
b85eeef6cf764d786a28e718781e7e2.png

员工信息表修改版.zip

65.44 KB, 下载次数: 2

发表于 2019-10-27 22:44 | 显示全部楼层
代码在 模块1 及 ThisWorkbook 中。
因为保存信息的时候要考虑的内容很多,如果再增加同步备份到数据总表的功能,代码会更复杂。所以备份功能采用手动按钮执行。

学员信息录入表格.zip

71.24 KB, 下载次数: 11

评分

参与人数 1学分 +2 收起 理由
caizhiliang + 2 我和小伙伴都惊呆了

查看全部评分

回复

使用道具 举报

发表于 2019-10-31 17:51 | 显示全部楼层
本帖最后由 rardge2015 于 2019-10-31 17:57 编辑

做了个多菜单的演示,见附件。省市县原来有重复的数据,已删除。标题行也删除了。
编号,学员信息删除了,但在删除学员的信息中,这个编号还是存在的,所以不能把编号拿出来重复使用啊。你是不是要拿出来重复使用?
其他暂无时间修改。

MenuSample.zip

81.31 KB, 下载次数: 9

评分

参与人数 1学分 +2 收起 理由
caizhiliang + 2

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-10-31 22:24 | 显示全部楼层
rardge2015 发表于 2019-10-31 17:51
做了个多菜单的演示,见附件。省市县原来有重复的数据,已删除。标题行也删除了。
编号,学员信息删除了, ...

大神   最后帮我一个忙吧  
添加一个选项
当我们读取记录后
读取的记录被修改后
询问是否覆盖  是则覆盖(这个已经有)
选择取消后
再加一个是否保存为新纪录
选择是  则添加为新纪录
选择否就取消操作

就是一个人一个科目一条记录
报新的科目又是一个新的记录

当然如果可以的话   您写给我的那个日期的帮我也写入两个日期选择的里面(I3和I5),您的代码太高深了  ,恕我真的看不懂

感谢大神伸手援助

学员信息录入表格7 .0大版本变革.zip

655.16 KB, 下载次数: 6

回复

使用道具 举报

发表于 2019-11-1 21:41 | 显示全部楼层
在模块1中,把以下两段代码重贴一下即可。过程名称就不改了。
年份会自动增加的。For 循环中用的是函数 Year(Date),取当天日期所在年份。
  1. ' 子过程:建立弹出菜单(年日月)
  2. Sub Menu_Date(BarMain As CommandBar)
  3.     Dim BarDate As CommandBarPopup
  4.     Dim iYear As Integer
  5.    
  6.     Set BarDate = BarMain.Controls.Add(Type:=msoControlPopup)
  7.     With BarDate
  8.         .caption = "年月日"
  9.         
  10.         ' 建立 年份 菜单项
  11.         For iYear = 2000 To Year(Date)
  12.             ' 建立(月、日)子菜单项
  13.             Call Menu_Date_YearGroup(BarDate, iYear)
  14.         Next
  15.     End With
  16.    
  17.     Set BarDate = Nothing
  18. End Sub

  19. ' 根据年份,建立(月、日)子菜单项
  20. Private Sub Menu_Date_YearGroup(BarParent As CommandBarPopup, iYear As Integer)
  21.     Dim BarYear As CommandBarPopup, BarMonth As CommandBarPopup, BarDay As CommandBarButton
  22.     Dim iMonth As Integer, iDay As Integer, iDayEnd As Integer

  23.     Set BarYear = BarParent.Controls.Add(Type:=msoControlPopup)
  24.     With BarYear
  25.         .caption = iYear
  26.         For iMonth = 1 To 12
  27.             Set BarMonth = .Controls.Add(Type:=msoControlPopup)
  28.             With BarMonth
  29.                 .caption = iMonth
  30.                 Select Case iMonth
  31.                     Case 1, 3, 5, 7, 8, 10, 12: iDayEnd = 31
  32.                     Case 4, 6, 9, 11: iDayEnd = 30
  33.                     Case 2: iDayEnd = Day(DateSerial(iYear, 3, 0))  ' 解决闰年问题
  34.                 End Select
  35.                 For iDay = 1 To iDayEnd
  36.                     Set BarDay = .Controls.Add(Type:=msoControlButton)
  37.                     With BarDay
  38.                         .caption = iDay
  39.                         .OnAction = "Menu_Date_Write(" & iYear & "," & iMonth & "," & iDay & ")"
  40.                     End With
  41.                 Next
  42.             End With
  43.         Next
  44.     End With
  45. End Sub
复制代码

评分

参与人数 1学分 +2 收起 理由
caizhiliang + 2 学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-10-25 19:08 | 显示全部楼层
自己先顶上去
回复

使用道具 举报

 楼主| 发表于 2019-10-25 19:52 | 显示全部楼层
博大精深   继续努力耕耘
回复

使用道具 举报

 楼主| 发表于 2019-10-25 21:18 | 显示全部楼层
这是要沉下去了吗
回复

使用道具 举报

 楼主| 发表于 2019-10-25 21:34 | 显示全部楼层
应该是沉下去了
回复

使用道具 举报

发表于 2019-10-26 08:48 | 显示全部楼层
给你思路吧。
关于唯一编号:
1、在辅助表中指定一个单元格用于记录序号;
2、单元格初值为 1;
3、需要生成编号的时候,读取这个单元格的值,作为编号的一部分,比如:[学]年月日 & 序号,作为“字符串”,无论移动到哪里,都不会改变值;
4、保存信息成功,则将这个单元格的值 + 1,否则,不改变。

关于备份:
你都能写出这么多代码了,备份写不出?
直接从老生和新生的表中,把数据块读取,然后复制到备份表,不就好了么?
回复

使用道具 举报

 楼主| 发表于 2019-10-26 09:16 | 显示全部楼层
rardge2015 发表于 2019-10-26 08:48
给你思路吧。
关于唯一编号:
1、在辅助表中指定一个单元格用于记录序号;

那些代码不是我写的  是网上找的,我修改了里面简单的内容转化而来的,vba不懂    函数会一部分
回复

使用道具 举报

 楼主| 发表于 2019-10-26 09:24 | 显示全部楼层
求大神帮忙下   我不会的都网上找   找到合适的加以修改
回复

使用道具 举报

发表于 2019-10-26 10:43 | 显示全部楼层
新生、老生、已读班,以什么作为区别?
编号,有什么要求?
回复

使用道具 举报

 楼主| 发表于 2019-10-26 15:50 | 显示全部楼层
rardge2015 发表于 2019-10-26 10:43
新生、老生、已读班,以什么作为区别?
编号,有什么要求?

新生、老生以状态那格为区别,编号没有要求   位数4位数就可以
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2020-9-20 05:26 , Processed in 0.110000 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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