EXCEL问题求教

  • C
    CJJT
    excel做的送货单,每个客户一个文件,送货单编号是:年份+客户编号+送货单编号,比如第5个客户第六次送货,现在编号2019005006,送货单编号每个客户独立的,在打开工作表时自动加1,每年在1月1日时又从001开始计数,如何实现每年1月1日时送货单编号自动从001开始计数?求高手指导,谢谢
  • b
    bestzhen
    打开工作表时自动加1?这个不太合理吧,你这个需求其实可以找人写个vba,可以填写订单、自动汇总订单
  • i
    insnct
    这需求不合理啊,万一误开了不是错乱了,应该是新订单编号在上面加1。然后这个你应该放具体的表出来,口头描述不太容易说清楚。
  • k
    killme2008
    这个要写VBA程序,打开表格+1的条件最好进一步明确操作流程,不然日常操作容易出错。
  • f
    flewrudy
    为何不用一个按钮控制?每次打开加一也太容易出错了吧,最好是打开确认创建新订单,顺便检查一下其他信息
  • y
    yxmr
    你对自己的表达能力太自信了,建议还是上个Excel的sample
  • 大部头书
    每个客户一年最多送999次货
  • q
    qwjhb
    自动加一参考这个
    1. Private Sub Workbook_Open()
    2. Dim newID As Long, oldID As String
    3. oldID = Worksheets(1).Range("A1").Value
    4. 'A1单元格取后六位,加上1
    5. newID = Strings.Right(oldID, 6) + 1
    6. 'A1单元格取前三位,7位数的newID取后六位
    7. Worksheets(1).Range("A1") = Strings.Left(oldID, 3) + Strings.Right(1000000 + newID, 6)
    8. End Sub
    复制代码




    https://my.oschina.net/h2do/blog/531570
  • y
    yxmr
    为啥oldid是long,newid是string,这个有啥讲究吗?
  • q
    qwjhb
    long能直接+1吧 大概这种直接上电脑试好了
  • k
    killme2008
    你说反了,
    newid是long,oldid是string
    oldid取单元格里的编号,文本类型可以避免编号前面的“0”作为无效数字被过滤掉了。
    newid在程序上看着只参与数值运算,这样赋值没毛病。
  • p
    ppalm
    文件名以送货单编号命名,以当前年份加客户编号搜索文件,新单号为年份加客户编号加符合条件文件总数加1即可,年份一变,自然归零,算法都不用变