ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 单号每月从数字0开始

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-7 19:35 | 显示全部楼层 |阅读模式
本帖最后由 760636412 于 2024-10-9 12:44 编辑

image.png

如附件,代码,我想修改下,具体要求是:假如,从9月份开始每新增一次,单号自动加1,一直到10月份时,新增单号时从0开始加1,到11月份单号新增又从0开始新增。目前我是手动修数数值(N2),但偶尔会忘记改了,能不能将附件的代码修改成自动的,谢谢 新增单号.zip (17.42 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

发表于 2024-10-7 19:52 | 显示全部楼层
加二行代码,每月1日[n2]单元格自动置0

新增单号.zip

16.9 KB, 下载次数: 10

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-10-7 19:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
每月1日,N2单元格自动置0

43184c3f-b64e-474d-895c-6377d3ad4c8d.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-10-7 23:10 | 显示全部楼层
加一句判断一下,当前月份与单号的月份不一致则将[n2]置0
image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-7 23:30 | 显示全部楼层
ykcbf1100 发表于 2024-10-7 19:54
每月1日,N2单元格自动置0

谢谢,请教下,如果每月1号或2号当天不上班,休息或者请假了,3号上或当月不固定的其中一天呢?,当时设置的1号,2号,不是过期了,代码不运行,如附件中,我也这样设置过,但是还是有缺陷,理不清思路,请教大神再次指点下,谢谢

TA的精华主题

TA的得分主题

发表于 2024-10-7 23:47 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-8 14:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢,再次请教下,如果每月1号或2号当天不上班,休息或者请假了,3号上或当月不固定的其中一天呢?,当时设置的1号,2号,不是过期了,代码不运行,如附件中,我也这样设置过,但是还是有缺陷,理不清思路,请教大神再次指点下,谢谢

TA的精华主题

TA的得分主题

发表于 2024-10-8 18:54 | 显示全部楼层
本帖最后由 zxsea_7426 于 2024-10-8 19:07 编辑

760636412 发表于 2024-10-8 14:29
谢谢,再次请教下,如果每月1号或2号当天不上班,休息或者请假了,3号上或当月不固定的其中一天呢?,当 ...


L8单元格中使用了日期,可以截取这个月份与当前月份做比对,然后再使用L8中的数字来进行增减。


供参考:
1728385636069.png

TA的精华主题

TA的得分主题

发表于 2024-10-8 20:00 | 显示全部楼层
本帖最后由 ykcbf1100 于 2024-10-8 20:07 编辑
760636412 发表于 2024-10-7 23:30
谢谢,请教下,如果每月1号或2号当天不上班,休息或者请假了,3号上或当月不固定的其中一天呢?,当时设 ...

设一个强制置0按钮
0eb3c963-7585-42c8-9b96-ed6f4e539d03.png

新增单号.zip

16.79 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2024-10-8 21:09 | 显示全部楼层
实际上,应该有一个持久性保存最后单号及日期的方法,否则无法实现你的需求,可以用一个文件保存。在工作簿打开时获取,关闭时保存。
  1. Public lastDate As Date
  2. Public lastID As Long

  3. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  4. Dim fileID As Long
  5.   Dim str As String
  6.   fileID = FreeFile()
  7.   Open ThisWorkbook.Path & "\lastDateID.txt" For Output As #fileID
  8.   
  9.   Print #fileID, Format(lastDate, "yyyy-mm-dd")
  10.    
  11.   Print #fileID, lastID & ""
  12.    
  13.   Close #fileID
  14. End Sub



  15. Private Sub Workbook_Open()
  16.   Dim fileID As Long
  17.   Dim str As String
  18.   fileID = FreeFile()
  19.   Open ThisWorkbook.Path & "\lastDateID.txt" For Input As #fileID
  20.   
  21.   Line Input #fileID, str
  22.    lastDate = CDate(str)
  23.    Line Input #fileID, str
  24.    lastID = CLng(str)
  25.   Close #fileID
  26.   If Year(lastDate) <> Year(Date) Or Month(lastDate) <> Month(Date) Then
  27.       lastDate = Date
  28.       lastID = -1
  29.       
  30.   End If

  31. Sub Call送货单号()
  32. '送货单
  33. Dim strpo As String

  34. Application.ScreenUpdating = False '停止刷新

  35. 'Dim a
  36. 'a = [K10]
  37. 'If Day(a) = 1 Then [N2] = 0
  38. ThisWorkbook.lastID = ThisWorkbook.lastID + 1
  39. 'Sheets("送货单").[N2].Value = Sheets("送货单").[N2].Value + 1  '在原有编号+1
  40. 'strpo = Format(Date, "yymmdd") & Format(Sheets("送货单").[N2].Value, "0000")  '单号年月日+0000
  41. strpo = Format(Date, "yymmdd") & Format(ThisWorkbook.lastID, "0000")  '单号年月日+0000
  42. Sheets("送货单").[L8].Value = strpo '单号所在单元格
  43. Sheets("送货单").[N2].Value = ThisWorkbook.lastID '不需要可删除

  44. Application.ScreenUpdating = True '刷新
  45. End Sub
复制代码

新增单号.rar

19.94 KB, 下载次数: 7

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-19 07:35 , Processed in 0.040800 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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