Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: zglibk

VBA 自动编号 + 窗体-多条件、多列查找重复记录

[复制链接]
 楼主| 发表于 2019-8-23 09:53 | 显示全部楼层
hfwufanhf2006 发表于 2019-8-23 08:40
问题出在字典的键值key:
     zd(s) = i
     这里的s=cells(i,7),就是报告时间,因为时间有相同的 ...

谢谢老师!
    测试成功,太强大了。在此,对@[size=1em]hfwufanhf2006老师的专业和素养的发自内心的佩服!不因为菜鸟的无知不以为然或嗤之以鼻。
    通过这个实际项目的简化模拟案例功能的实现,做为菜鸟的我,真是受益匪浅。
    对于陌生的字典和数组,在做完这个案例后也有了一定的认识和了解,当然还需进一步学习,希望早点达到老师的水准。
    最后归纳一下这个贴子最终实现的功能:  
1、多条件查重录入:
    利用字典或数组,通过2个窗体控件(订单号ComboBox1 & 区域ComboBox2)的内容,查找记录表对应列(本例中为A列&B列)中的记录并判断重复:
    1)存在重复  —— 将窗体中所有控件中的内容写入工作表(生成报告——这个设计主要是满足一个窗体两用:a、当录入数据窗体;或b、调出订单号打印任何时候生成报告,当然,后期我会做一个单独的生成报告功能的窗体或其它形式);
    2)不存在重复——Else 提示先保存(当然也可以为其它)
2、多条件+编号规则的自动编号:
    利用字典,通过窗体控件“报告日期TextBox3” & “订单号ComboBox1”的内容,查找记录表对应列(本例中为A列&G列)中的记录,判断订单号重复、判断月份,符合条件则重置“报告编号”序列为001;

    本贴如对后来者有任何启发和帮助,善莫大焉!

    在此,再次对老师致以诚挚的谢意!!


回复

使用道具 举报

 楼主| 发表于 2019-8-23 14:07 | 显示全部楼层
本帖最后由 zglibk 于 2019-8-23 14:15 编辑

老师,补充一个问题:
空表→报告编号:我为了判断“销售记录”表是否为只有标题行的空表。如果是空表,则报告编号为报告日期+001(即PQRyymm001BG)
但是运行下来的结果,是报告编号没有生成含"yymm"的值(仅为PQR001BG)
代码如下:
Dim lngLastRow As Long
Dim i As Long
lngLastRow = Worksheets("销售记录").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lngLastRow
          If IsEmpty(Cells(i, 1)) Then
              TextBox46.Text = "PQR" & s2 & "001" & "BG"
          End If
       Next i
不知道哪里没写对,有劳再帮我看看,谢谢!


回复

使用道具 举报

发表于 2019-8-23 14:56 | 显示全部楼层
zglibk 发表于 2019-8-23 14:07
老师,补充一个问题:
空表→报告编号:我为了判断“销售记录”表是否为只有标题行的空表。如果是空表,则 ...

1、range.end(3).row获得最末行数,对于空表,最末行数就是标题行,是1,因此
     for i=2 to range.end(3).row
          .......
     next i
     这循环中间的代码都不会被执行,因为初始变量 i=2,不满足执行条件;
2、其实不需要特别区分空表和非空表,字典一旦被定义,记录数就是零,即使没有写入任何元素,其记录数也是零,因此用字典是不用考虑空表这个问题的,读取字典数量就行了。
回复

使用道具 举报

 楼主| 发表于 2019-8-23 15:46 | 显示全部楼层
本帖最后由 zglibk 于 2019-8-23 16:05 编辑

  谢谢老师!
  如果不嫌弃的话,请老师加我QQ:1039297691(验证信息:自动编号),我要拜师~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 02:18 , Processed in 0.279356 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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