粉丝605获赞1760

大家好,我是老吴,欢迎观看 excelvba 入门开窍课程,我们在第九章节学习空间和窗体。好,窗体是什么呢?我们平常使用一个需要的时候呢,可以说我们看到的所有的界面都是窗体,比如说我对某一个单元格格式进行设置 好,这个跳出来的东西呢,就是窗体啊,你看这里可以选择,包括我们可以点击一些按钮,包括这个确定和取消啊,这些 都是我们这一章节要学习的。我们刚刚看到的是一个室友已经设置好的窗体,我们这一章节呢就要自己去设计这种窗体。好, 首先我们来看一下我们这一章节啊,我们学习的案例啊,我们会做一个学生的信息采集,我现在进入这个工作部,一个是要打开之后 突然一下就关闭了,关闭完之后就会弹出一个登录框啊,这个登录框呢,包括这上面这个日期,包括账号密码的这个输入啊,包括这个退出和登录。如果我不输入密码呢,我直接点登录啊,是进不去的,他会提示呢未输入账号, 或者说我想把它这个关掉,哎,也关不掉啊,我只能通过这个退出把它关掉。好,如果要进去呢,我就一定要输入 账号,然后我点登录好,他就会提示登录成功。好,我就会进入第二个床体。 这个窗体呢就是学生采集需要填入的一些信息,比如说要输入你的姓名,然后要选择是男是女,然后选择这个学院,比如说我选择医学院,然后再选择专业的时候呢,你看对应的 就是医学院的专业。好,比如说我要选择这个啊,外国语学院那出来的呢?就是啊,语言类专业这种二级菜单是怎么来制作的呢?啊?你精通的这些外语,那你可以多选也可以单选 啊,但是上面这个东西呢,你只能单选,你看我选择男就不能选择女啊,只能选择一种。还有呢,比如说你随意输入了,你点确认的时候,哎,他会提示请输入中文名啊,他是不接受你输入英文名的啊,比如说我输入一些 这种字母啊,请输入中文名,哎,你一定要输入一个中文名啊,比如说我输入啊,这个中文名啊,他就写进去了啊,我再输入一些东西 啊,也写进去了啊,他只能识别中文。这个窗体我设计的时候呢,是不允许填写人关闭的啊,你只能填写,但 当然你可以去看啊,你可以把这个窗体移开去看之前已经输入的内容,但是管理员可以关闭啊。啊,这里我就设置了一个管理员关闭啊,你可以点一下这个地方,但是呢需要输入管理员密码,比如说我输入了正确的密码之后呢,他就关闭掉了。 好,关闭掉之后呢,你就可以对这个表格呢进行一些修改,我们通过完成这个案例呢,可以学习窗体空间的一些知识。 ok, 我们再来看一下第二个案例。 好,我们再来看一下第二个案例,图片预览,我们现在打开一个工作布,然后紧接着就会弹出一个窗体,你可以通过旁边这个表格去选啊,然后旁边就会出现 相对应的图片,这个是不是比我们在一个设有表上去展示图片要更加的清晰一些呢。 好,上面呢还有一个标题啊,当我鼠标移到这个标题上的时候呢,哎,这个标题的颜色就发生了变化, 而且我的鼠标呢也变成了一个小地球,就预示着这个地方呢是可以点击的。好,我一点击呢,哎,他就在加载了,其实就是链接到了一个网站啊,这个网站呢啊,就是我的这个头条主页。 好, ok 了,就跳到这地方来了,那我们把它关掉,当然这个网站呢可以根据自己的情况呢去把它修改。当我把这个鼠标移开的时候呢,哎,他又恢复原来的颜色了,这种效果呢,我们本章都会来学习案例,我们先看到这边, 我们先来讲一下这个窗体的一些基础。好,我们来到开发工具,我们之前的章节呢,我们在写代码的时候都是插入一个标准模块。好,现在呢我们就可以插入一个用户窗体 啊,我们一插入呢就有一个这个窗体,然后优质服装一啊,这个是自动命名的啊,你可以用他的这个默认的名称,也可以对这个名称进行修改,我们可以看到这下面有一个属性啊,这个属性呢有非常多的这些东西啊,非常多选项 啊,这个选项你可以看两种啊,第一种你如果记得这个属性叫什么名称,你可以去找啊,如果你不记得呢,或者说你比较陌生的话呢,你也可以通过这个分类 啊,这两个是一样的啊,这两张是一样的,只是一个是按照这个首字母的这个 a、 b、 c 顺序来排的,你看 a, c, d, e 啊。第二个是按照分类排的,你看比如说 啊,控制图片的就在全部在这里,然后外观呢,还有位置啊,还有一些杂项啊,包括他的字体,两种呢,都可以去找啊,怎么方便怎么来,如果要运行穿体呢,就是点击这个运行代码就可以了, 哎,他就跳出一个窗体啊,当然现在这个窗体什么都没有,我们可以在这个窗体上呢,可以去画一些空间啊,这个工具箱呢就在这里,你看这个空间呢,比如说标签,我们这样画一下啊,这个文本框呢啊,输入的文本框就是我刚刚输入账号 密码的这种框,哎,我一画下就有了,好,然后我再画一个啊,上面是账号,下面是密码, ok 啊,这些都可以画出来,然后我再运行看一下,哎,这个时候呢,你就可以在这个文本框里面输入东西了,你看是不是很好玩? 我们在学习这一张纸的时候呢,其实有很多东西跟代码没有关系,比如说我们要对齐,怎么办呢?那比如说这个啊和这个要对齐,比如说这个我们就改下名字吧,比如说叫做账号。 好,然后再按住 ctrl 键呢,再复制一个出来啊,这个我们就叫做密码啊,账号密码。哎,好像不太美观呢, 这怎么办?我们就要把它对齐一下啊,这个对齐呢,我们可以啊,先选中这两个啊,然后我们来到这个格式这里顶端的对齐 好,然后就可以把他啊移过来。好,这两个呢啊,对他进行对齐 好,顶端对齐,然后把它移过来啊,但是这个账号啊,这个字呢好像太小了啊,跟这个框好像有点不搭呀,啊,这个怎么办啊?我们可以通过改变它的属性,比如说这个有一个凹凸赛子, 这就是自动尺寸的意思啊,我通过这个字面意思,我拆的,我来试一下啊,把货色改进去,我看一下,哎,哎,他是不是就跟这个字体的这个宽度 正好匹配了啊?这个呢,我也来试一下,改成处,哎,他就搞定了,然后我就可以再一次呢对他进行对齐, 哎呀,放这了,然后再看一下,哎,这个时候是不是显得就比较自然了, ok, 好,最后面我来说呢,怎么把这个窗体自动的掉出来,因为这个窗体呢,他要来到这个窗体里面点一下这个地方。其实我们可以通过一个事件啊,就是这个工作部事件 啊,如果对事件这一章节不了解的话呢,可以翻看本合集视频的第六章节啊,先学习这个试卷过程。好,我们来到这个,这次不可能,然后我们选择这个工作部时间 啊,这个世界末日就是这个欧盆啊,我们就是要使用这个欧盆,首先我们把这个窗体的名称输入 uzifl, 好,然后点一下,哎,这个时候呢他就出来很多这种属性啊,方法啊,要这个袖啊,这个东西好不好记,那肯定好记啊。啊,我每次看到这句话的时候呢,脑中呢就情不自禁浮现了一个场景, 笑, ok, 我们回到课程中来看一下,通过这个事件呢,我们就可以每次打开工作布的时候呢,就能调用这个床体。 ok, 我们来测试一下。好,我现在打开这个工作布, 哎,他就自动的跳出来了,好,我们把这个东西删掉啊,我可以在这里面呢插入一张图片啊,这个图片呢,我不知道在这里面找啊,是哪一个呢?我不太清楚啊,我就可以来到这个分类里面找, 哎,这里有个图片,让我点一下,哎,现在就弹出一个这种让我选择路径的地方,哎,这个我就知道了,你可能是让我选择一张图片了, 好,我就把这个奋斗呢选进来了,哎,我发现我要的这个字好像看不见了啊,我就可以在这个地方呢对这个图片进行一下调整啊,这些东西呢,我们都不需要去记, 我们用的时候呢,再去试一下就知道了,比如说我选这个零,哎,我发现这图片呢,他的位置有一些变化啊,这显然是对这个图片的位置啊调整的一个属性。 好,我们再来看下,下面这个东西也有三个,我来选一下,第一个看一下,哎,这个我就知道了,他就是一个拉伸的作用啊,就是把这个图片呢正好的放进这个窗体里面啊,再来看一下 这个,这又是一种位置,好,我们选择第一个啊,这个是我们想要的, ok, 我们保存一下。 好,当我们每一次打开这个工作部的时候呢,都有一个这么励志的这种窗体来提醒我们要奋斗,开启美妙的一天啊,是多么的鼓舞人心。 这节课呢,我们只是大致的演示一下窗体到底是个什么东西,从下节课开始呢,我们来正式学习如何设计和制作创品。好了,那这一节课呢,就讲到这里,感谢各位看官的支持,如果这个视频能帮助到你,请帮忙点赞、收藏、转发,我是老吴,关注我,下节课我们将学习新的内容。

大家好,今天分享一个一键生成对单单的案例,我们先来看一下他这张表,这张表呢原本有几千行,我大概取了三百行不到的数据,两百八十九行来进行演示。 表的数据呢是从系统里面导出来的,把未结清的客户名系全部导出来了,现在要根据 a 列的客户名称生成一张一张的对账单,发给不同的客户对账 工作部里面还有一张对账单模板,也就是所有的客户对账明细都要根据这张模板来填写。模板呢有表头有表尾,目前他是怎么做的呢?首先在 a 列筛选一个客户名称,筛选好了以后,然后选中这个区域定位条件,选择可见单元格,然后复制, 再把复制的这个区域粘贴到模板中,因为每个客户的名信有多有少,下面会有很多的空行,那么他还要把这些空行给删除掉,删完了以后再把客户名称填到 a 二单元格。 模板里面的内容都填好了以后,在工作表名称上右击,选择移动或复制,在下拉框中选择新工作部,勾选建立副本,给这个客户创建 一张独立的客户对单单,然后再保存这个工作部,保存完了以后,继续 筛选第二个客户的,这样一个一个弄下来效率很低,如果有几十上百个客户的话,可能会加班加到吐血, 而且呢也容易有漏缺。下面就来分享一键生成对单单的方法。先来演示一下效果,我们要做的呢就是点一下这个按钮。大家注意一下,这张表一定要放在一个空文件夹里, 因为拆出来的对账单是跟着当前工作部走的,如果你把表放在桌面上,那么拆出来的表就全部分布在桌面,整理起来很麻烦,所以这里要特别注意。我们点一下这个按钮, 我在代码里面设置了一个技术和计时,拆封完了以后,我们看一下一共拆封了多少个对账单和用了多少时间。好,已经拆封完了, 可以看到对战单已拆封完成,一共生成二十六个对战单,一共用时八点零五秒。 我们随意点开两个看一下。 a 二,单元格是对应的客户名称,下面也没有空白,行 硬收,合计硬收都没有问题,再点开一个 一样也没有问题。好,下面来看代码过程名称叫一键生成对单单 ip 可以选 skapditty, 等于 boss 是关闭屏幕刷新。 下面两行是声明,一些变量声明, dqsh, f、 z、 m、 b, m b 为 为工作表对象, sxrg 为单元格对象。变量的声明要便于记忆,否则变量一多或者时间一长,你都不知道这些变量是干嘛用的。每个人给变量起名的方式都不同,比方说, dqsh 中的 dq 就是当前的拼音缩写,也就是当前工作表。 fcmb 就是复制模板的拼音缩写, mb 是模板的拼音缩写, sxrg 中的 sx 是筛选的拼音缩写。下面声明, wb 为工作部对象, y、 l、 x、 k 二为整形,分别用来计数、记录行号和作为循环变量。声明一个字典对象 d 后面的变量, ar 和 ar, 一是作为存储区域的数组 电量,可以在边写代码的过程中边写边加,不用一次性都写好。 t 等于他们是记录代码运行 的起始时间。三十 d 等于可以找 opple 的 supremep。 这个选的人是创建一个字典对象的 赛特 d q, s h 等于 exouk 不可点 xtv 细致把当前工作部的活动工作表交给 d q s h, 也就是我们现在正在做的这张明细表。赛特 mb 等于细致模板, 把模板这张工作表复制给 m b, d q, s h 点 alt, fut, amt 等于 fans。 是取消筛选。 为什么先要做一个取消筛选的操作呢?因为如果当前你的工作表是筛选状态,那么我下面定位最后一行有文本的行号就会以筛选后的最后一行来定位。我们 来演示一下,随意筛选一个客户 运行代码,跳过这个取消筛选,直接到 r 这一段, 可以看到 r 的值是两百七十六,但实际上我们这张工作表有两百八十九行,这样就出现定位偏差,我们重新运行一下取消筛选的代码,筛选被取消, 再运行 rdj 代码, r 的值是两百八十九,这样就对了。 ar 等于 dqsh 点认准 a 二到 a r 目前 r 的值是两百八十九,也就是把 a 二到 a 二百八十九这个客户名称区域全部装进 ar 数组里,然后放到下面的货循环中,利用字典去重复值一个客户名称只保留一个为一纸。我们在这里设置一个断点,直接点运行, 让货循环这段一次性循环完。然后通过本地窗口看一下字典中的值, 可以看到字典中只剩下二十六个客户的唯一值。 ar 一等于 fpx 选点穿死 pos 地点。 case 是把字典中的客户名称转字后放到这个新数组 ar 一里,下面开始对 ar 一中的二十六个客户进行循环操作。要对着二十六个客户 进行什么操作呢? dqsh 点认准 a 一点奥特菲优特先进行筛选的操作,后面是奥特菲优特的两个参数,第一个参数是在第几列进行筛选,这里是在第一列,也就是客户名称这一列进行筛选。 第二个参数筛选的条件也就是你要筛选什么内容呢?当前循环到 ar 一数组里的客户名称是乐房电子, 也就是要把乐房电子都筛选出来,我们运行这一句,乐房电子都被筛选出来了。 六、 或者代码运行到下面大家就明白了,继续往下走, mb 点 copy 复制模板这张工作表为什么要复制?因为我们要在模板里进行插入行、填写数据等操作,如果不 复制一份出来的话,那么后面的表就不能进行标准化的操作了。用心这一句, 复制了一个模板,然后把复制的这个模板交给变量 fcmb, fcmb 点内蒙等于 ar 一 k 一, 当前 ar 一 k 一循环到的是乐凡电子,那么工作表的名称就是乐凡电子, 名字改过来了,下面这一句是在复制的这张模板里插入行,插入多少行呢?二、行目前爱的值是八,也就表示 乐凡电子有八行数据。大家注意一下,目前模板里面的表头和表尾之间是连着的,里面是没有空白行的,空白行是要等我们后面根据客户数据的行数来插入对应数量的。 我们运行这一句, 插入了八个空白行。插入了八个空白行以后,我们要把筛选区域的数据取过来,所以 把细致一工作表的 a 一单元格所在的连续区域交给变量 sxrg, 也就是这个区域。拿到这个区域以后,我们不能直接复制过来,还要进行处理,第一个处理是不要表头, 所以 sxrg 点 offite 一杜浩零向下偏移一行,整个区域向下偏移一行以后, 最下面就会出现一个空白行,所以还要通过 resex 重新定位这个区域, 在原有的行数上减去一行,把这个空白行给剔除,复制好了以后,粘贴到 fcmb 点,认准 a 四, 也就是复制模板的 a 四单元格。我们运行这一句,八行的数据都过来了,数据过来以后,还要在 c 十二单元格写上一个萨姆公式,也就是这一句, 也就是这一句。代码是怎么知道我们要在 c 十二单元格写入上面公式呢?因为目前爱的值是八,八加四等于十二,后面的求和区域也是同样的道理,也是动态的。八加三等于十一,也就是求和的区域是 从 c 四到 c 十一,也就是这个区域求这个区域的和。我们运行这一句求和结果出来了,公式写好以后,还要在 a 二单元格写上是给哪个客户的对账单。 兔 ar 一 k 一,也就是兔乐凡电子,因为目前 ar 一 k 一循环到的是乐凡电子运行这一句对应的客户名称写进来了,这样对账单基本就完成了。 fcmb 点 cop 生成一个独立的工作部,生成了一个独立的工作部, wb 等于 xt 五个,不可把当前这个独立的工作部交给变量 wb, 然后把这个工作部另存为到当前工作部所在的路径下运行。这一句 大家注意看,这个区令成为这个客户的对账单就生产好了。生产好了,这个工作部 就不需要了, 所以 wb 点克罗斯,关闭这个工作部, fcmb 点迪丽特。既然这个客户的对账单已经生产好了,那么这个复制的模板也就不需要 掉了,所以直接删除上下两句,一个是屏蔽警告窗口,一个是打开这个警告提示。这个前面视频已经讲过时间关系,今天就不演示了,我们直接运行代码。 工作表被删除了外,等于外加一,也就是我每拆分一个客户就给变量外加上一,最后通过 macebox 弹出一共拆了多少张对账单。 x k 继续循环,也就是要对剩下的客户执行上面同样的操作,直到把这二十六个客户全部循环完。奥特菲优特木的等于 fans, 跟上面一样是取消筛选,也就是 对账单都生成完了以后,我们还要将这个表格像这样恢复到原样。 bqsh 点十来个,回到 ct 一,这张主表 下面是打开屏幕刷新,最后呢,通过 macebox 弹出一共拆了多少张表和一共用了多少时间。好了,今天的分享就到这里,感谢观看。

大家好,我是老吴,欢迎观看 excel vba 入门开窍课程。上节课我们用这个按的定位这个数据的边界, 然后配合这个肉和这个卡棱,获取到边界的列号和行号。那这节课呢,我们就要学习一个他们的附属形式,也就是肉字和这个卡棱式,那他们两者有什么区别呢?我们先来看一下这个, 这个肉呢,他是返回单元格所在的行号,如果是区域,就返回这个区域的首行的行号啊,他是这个单元格的一个属性 哦,我们可以通过代码来看一下。好,首先呢,我输入一个单元格, b 五, ok, b 五的行号就是点肉,然后呢,我们用这个 ms 去 box 把它弹出来,然后看一下,好, b 五的行号是五,那显然是五了, b 五就是这个单元格,他的行号是五,然后这个没错, 好,然后这个如果是区域的话,他就返回这个区域的首行啊,比如说是 b 五到 c 十啊,这个地方,也就是 b 五是这个地方, c 十啊,就是这个区域。这个肉呢,也是返回这个首行的行号。看一下啊,就这样, 比如说这边改成 b 六到 c 十啊,他还是返回这个首行的行行。好。现在呢,我们就来看一下这个 rose, 他是怎么了? 做肉食呢?它是代表一个行的集合啊,返回的是一个单元格对象啊,他返回的不是一个数字,他是一个对象,如果我输入这个肉食呢,这个就代表所有的行 好,如果我对所有的行进行选择呢,我就可以直接这个 roose, 然后点这个啊,史莱克称啊,来试一下, 他就选中了所有的行, ok, 也可以单独表示, 比如说我输入这个肉,是呢啊,括号里面写个一,然后斯拉给他 好看一下会有什么反应,好,他就选中了这个第一行, 整行啊,全部选中了,那这个肉是然后括号一呢?他这个怎么理解啊?就是说这个行的集合也就代表这个工作表的所有的行啊,其中的啊,第一行这个写法呢,就像我们之前学习过啊,对象那一刻里面 我们表达一个工作表的时候呢,我们可以这样表达谢的字啊,这也是代表工作表的一个集合啊,在这个工作表集合里面我们找到第一个工作表啊,对他进,然后呢把他的名字啊改成幺幺幺啊,就其实 这个的意思啊,跟这个表达的意思是一样的啊,只不过一个是在行的集合里面找到第一行啊,选择他,然后呢这个是在工作表的集合里面把他的名字改 成幺幺幺啊,这个肉字呢,他还可以选择啊,同时选择几行啊?比如说我选择一到十行, 好,来看一下,好,他就选中了一到十行,但是这个肉字呢,他选择的这个一到十行,他是有一个区域的。好,如果我们没有在前面加上任何的区域, 嗯,他就是默认,就是说我在这个工作表里面从第一行选择到第十行,如果我在前面加上一个区域的话,啊,他就会改变啊,比如说我换到这张表里面来, 好,我在前面呢,呃,加上,比如说我加上一个认字, 选择一个区域。好,这个区域呢,我就选择从 a 五到一十啊,这个区域啊,我们先不选择这个这么多,行吧,我们先选择一行。好,我们来看一下, 好,一行呢,他就选中了这个 a 五到一十的这个首行啊,也就是这个区域的一个首行, 如果我们不加这个前面的东西呢?比如说我现在把它删掉啊,然后我们再选择一下啊,他就选择这个工作表的这个第一行。好,我加上这个呢啊, 他就会啊,相对这个区域而言的第一行,那他就选中这个地方,如果把这个区域啊改成这个 a 六到一十,也就是 a 六到一十,就 这个区啊,这个区的第一行,那肯定就会选中这一行了 啊,他就选中了这一行。好,我们再来测试一下,比如说这个 a 六到一十呢,他是这个区域 a 六到一十 啊,他总共有一二三四五啊,总共有五行,如果我这肉是里面呢,填入第六行会是个怎样的状态啊?已经超出了这个区域。 来看一下,再来选一下,他不会因为你选中了这一块区域呢,他超出了他就爆错, 他依然会根据这个首行啊往下数,从这个 a 六的这个六行往下数啊,再数六啊,一二三四五六啊,然后选中 这个区域。 ok, 我们再来看一下,我们平常用的比较多的话,我们会用这个 roose, 然后点这个 call 啊,这什么意思呢? call, 如果我们学过函数,我们知道这是一个技术 啊,我们这么写呢,就是肉是点 cant 呢,就是代表我们要获取到这个最大的行号,然后同样的这个卡顿式呢,然后点这个 comt, 就是获取到最大的列号 啊,最大的行号是什么意思呢?比如说我在这个空白单元格,然后按住 ctrl 键向下啊,他就会定位到这个一百多万行,那我们快速的获取这个行号呢,我们就可以 直接这么写啊,因为他是个集合吗?在这个集合里面我统计啊他 数量,然后怎么样呢?比如说我可以把它用这个下去光把它弹出来,然后看一下啊,这就是这个工作表最大的一个行号, ok, 好,同样的道理呢,我们可以让他返回最大的列号, 好,看一下这最大的行哈,好,最大列号呢,就是一万六千三百八十四列, 我们再把这个我们讲的这个肉食和这个咖冷呢啊,结合我们上节课学习的知识呢,我们再来理解一下。好,比如说我定位这个 a 一单元格,然后呢?嗯的啊, xl 档啊,就是往下定位他的边界。 好,然后呢我们再获取到他的行号, ok, 然后我们再用这个 max 去 boos 呢,把它弹出来, ok, 他就弹出十七啊,是因为从这个地方呢往下定位他的边界孔雀向下啊,他就定位到这个单元格,那这个单元格呢?他的行号是十七, 也就是我们刚刚我们学过的啊,他是返回这个单元格所在的行号,然后我们把这个代码改成肉食,同样代码我们只是改变了一个字母啊,把它改成一个肉食,可以来试一下。 好,他就返回了这个万超啊,他返回了这个单元格的内容,为了更好的演示这个我们返回的四个单元格呢,我们还可以再一次的再获取 到他的行号,嗯,比如说继续获取他的行号啊,他又可以因为你返回的是一个单元格,然后我再用这个单元格里面的属性,这个肉呢再返回他的行号,我可以把它进行。怎么样呢?我可以把它复制一下 啊,阔屏,然后呢把它复制到什么地方去?比如说我复制到这个 k 一单元格啊,然后把这个 mac 去去掉,我通过 a 一向下定位他的边界, 然后获取到这个最后面这个边界的这个单元格,再把这个单元格复制到这个 k 一 来试一下,好,他就复制过来了。好,这就是关于这个肉和这个肉子的这个区别,这个咖冷呢和这个咖冷食也是 同样的道理。我们这节课学习的东西呢,是为下节课学习打下基础。好了,这节课呢就讲到这里,感谢各位看官的支持,你的点赞是我继续创作的动力,关注我,下节课我们将学习新的内容。

大家好,我是老吴,欢迎观看 excev b a 入门开窍课程,这节课我们利用上节课学习的 iastr 函数来完成这个案例。在日常工作中呢,我们经常会遇到一些文字描述,但是这些文字描述呢,并不能进行一个很好的统计, 比如说现在有很多这种残次品,残次品的描述是有啊,有些写的很详细,但是其实我们在统计的时候呢,我们是比如说破洞有多少个,开胶多少个,断底破线有多少个,你直接用这个东西是无法经营统计的啊,所以我们先要 提取这些关键字,去判断这个制服串里面是否包含这些东西啊,如果包含的话,我就让他进行一次累计就可以了,我们来重新写一下。 好,我现在是写在一个模块二里面了,这个界面有点小啊,来看一下,我是写在这个啊,模块一里面,首先我想到的就是两层的循环,这个循环的嵌套呢,哪个放在前面,哪个放在后面? 我是先大循环,循环这些东西,然后每次循环的时候呢,我再进行一个内层循环啊,就是破洞循环一次,开胶循环一次,来进行一个判断。好,我们可以使用 fow 循环,也可以使用 fowh 循环啊,这个随便,我这边呢就使用 fohe 循环, e 曲啊, ss 音润曲,从 f 二开始。好,然后写个动态的 cs 看着啊, f 列,然后向上定位他的边界啊,还少写了一个, 把它声明成一个单元格。接下来就是内层的循环,内层循环就是 一曲啊,比如说是 ss 一音问题啊,这个呢,有就不写了啊,我直接把这个复制一下, 好,改一下,把 f 二改成 d 二,然后这个地方改成 d 就可以了。 好,上面声明一下。好,现在就是挂 安静了一点啊,进行判断。好,首先我使用 i n、 s t r 函数。好,这个函数的第一个值就是待搜索的支付串,是 sos 还是 sos 一呢?啊?很显然我们是要查找这个视频的原因,这个是我们待搜索的支付串,所以 这地方应该填 ss 一,我们要搜索什么关键词,这个关键词就是这个 ss。 啊,就是这个,这个就是在循环这个地方啊,这是关键词,所以呢,这个 ss 写在这里。 好,这个时候如果找到了,就会返回一个值,就是出现的位置,但是如果没找到呢,就会返回一个零,这个时候我做一个判断。易,如果这个地方大于零,或者说不等于零呢?都可以写,那那么 进行一个统计,这个统计呢,比如说 n 等于 n 加一,进行一个累计。啊,就是找到一个破洞啊,我就累计一次,找到一个破洞,我又累计一次, 那这样呢,等这个内存循环循环完之后,这个破洞在这个区域一共出现过多少次就能得到了。好,接下来我就把这个 n 填到当前循环的这个 ss, 他偏移一列就是填到这个位置。 啊,这句话我们要写在什么地方?是写在这里面吗?啊,并不是,我们把它写在这个内存循环的外面,写在这个地方。好, ss, 然后我不是在偏移零行一列,好,把 n 复制给 这个单元格。 ok, 复制完之后还要干嘛?还要对,恩,进行一次清零,又把它复制成零,因为现在我已经把这个值填进了这个单元格,就是破洞的次数填进来了,填进来之后,恩,要清零,如果不清零的话呢?恩,他的值会得到保留,然后 下一次循环的时候他又会进行累计。那比如说破洞十次,然后现在查开胶了啊,开胶又在这个十次基础上再次累加,那这样就不对了。好,我们来运行一下,把这个本地窗口调出来看一看。 好,现在这个 ss 呢,他就是破洞了啊, ss 一就是这个顾客穿了三天鞋底开胶,这个有没有啊?他是返回零啊,略过了。好,第二个袖 口上有一个破洞,哎,这个是破洞啊,返回了七,条件成立了啊,条件成立,条件成立就会运行这句话啊。 n 累计一次一 啊,继续循环。好,第三个拖线啊,第四个,第五个,第六个,第七个,第八个啊,第八个才有,所以呢中间会略过这几个啊,略过略过略过略过啊,这个有 啊。九,恩,又累计一次啊,恩,现在就是二了。好,然后以此类推。好,我在这里做一个断点啊,让上面先循环完一次。 好,现在 n 呢?找到了几次?找到了十次,然后把十填入到当前循环的这个 ss 旁边的这一列填进来, ok, 就填了十次了,现在 n 进一字清零啊,清零 完之后呢,再去循环,现在 ss 啊,他就不是那个破洞了啊,他现在是开胶了。好,然后又继续循环啊,第一个就是开胶 n 就累积了一次啊,然后接着这样找好,后面逻辑都是一样的啊,我就整体运行一下, ok 就搞定了。为什么说 str 函数他出现的概率非常大,因为他借助这种非常简单的语法呢,就能解决很大的问题,这种包含的问题 省去了很多代码。如果你不用 str 函数呢,那你要对这个制服串足够的来进行循环啊,每一个字来进行循环,看一下有没有这个破洞这两个字啊,这样是非常麻烦的。好, str 函数呢,虽然很好用,但是呢他也有他的局限性,他只能匹配这种具体的这种概念啊,如果我现 是模糊匹配,就是匹配一个概念,比如说我想匹配的是这样的啊,就是看这个地方是不是都是货号,比如说这个地方呢啊,有个这样的东西, 我现在就要查找这种东西,把它查找出来啊,就是不是货号的这种东西呢,就属于一个概念性的匹配,就是 比如说前面是一个字母,后面呢跟着五个阿拉伯数字啊,这种才是货号,这种就不属于货号。像这种匹配我们应该怎么来做呢?我们就可以使用耐克运算服来进行一个比对。好,那关于耐克运算服呢,我们下一节课再来讲解。 好了,那这一节课呢就讲到这里,感谢各位看官的支持,如果这个视频能帮助到你,请帮忙点赞、收藏、转发。我是老吴,关注我,下节课我们将学习新的内容。

啊,这个交货是怎么来实现的?我们来写一下,当我们鼠标点击一个单元格的时候,这个单元格的内容我们要把它提取出来,这个怎么办啊?这个时候呢,我们就要使用我们之前学过的工作表示件是来个什么劝卷。好,我们来到这个数字一里面,然后选择工作表时间 啊,默认就是这个啊。首先第一步我们写这个事件的时候呢,我们要对这个事件进行一些啊控制,因为我现在只想就是我点击这个姓名的时候呢,才要触发这个事件啊,我点击其他的时候呢,不要触发这个事件。好,所以我首先 啊衣服托给他啊,首先这个看着啊,我希望他是单个点击好,如果大于一,证明他选择的是一个区 啊,我就直接退出这个事件过程 好了。好,接下来我们还要做一些啊限制,那首先第一个我点击的这一列呢,它是第二列, 同时还要满足呢,他是从第三行开始的啊,因为上面还有两行,所以我写一下啊,他的列,如果他的列等于二啊,并且按着 啊拖给他点肉大于二啊,如果同时满足这两个条件,那我才要运行以下的话啊。首先先不讲那么多,我先把这个 托给他,他的直把他写到文本框里面,应该怎么做呢?首先写上这个托给 啊,这个直把它写到文本框里面啊,这个文本框我们怎么来调用它呢?这个文本框就是首先写上这个窗体的名称 啊,优质服装,因为这个文本框呢是在这个窗里下面的,然后点一下啊,文本框叫什么?叫 txbox 啊?来了,那第一个就是啊,怎么来区分第一个和第二个呢?可以看一下这个地方啊,我们点击这个地方,然后看一下这边的属性啊,这个属性呢?在这里啊,这个地方名称啊,这就是 第一个名称,然后呢这里啊, box 啊,这样来做个区分,然后后面这个地方呢,你可以写这个 txt 啊,就是它里面的值。在这个文本框里面呢,还有一个啊,这个 w 啊,这两个呢,在这个文本框这个条件下呢,他们两个是一样的意思,你可以写,也可以不写。好,我们来测试一下。好,我们先做一个按钮,让这个窗体呢调用出来。 好,我们先把这个空间的这个画上来。好,这个窗体调用呢,我们就写在这个模块里面, 把窗体调用好,写上这个优质服装一, 然后秀啊,注意了,这个地方模式要注意啊,他是零啊,为什么是零呢?因为我在调用窗体的时候,我鼠标还要点击啊,所以一定是零 啊,就是无模式状态啊,如果你不写零呢,窗体调用出来之后鼠标没办法操作。 ok, 我们来指定一下啊,指定红,好把这个窗 掉出来,掉出来之后我来点一下看,哎,点了没什么反应啊,看下哪里写错了啊, 这个地方写错了啊,不是第三列啊,是第二列。好, ok, 继续来看一下。哎,这个时候呢,我就可以 已写录进来了啊,我再点一个,哎,这有点问题了啊,我每次点的时候呢,他都在刷新啊,我要的不是刷新,我要的是叠加豆花后面再写上第二个姓啊,这个怎么办呢?我们来改一下这个地方啊叠加怎么写 啊。其实这个道理呢跟这个 n 等于 n 加一这个道理是一样的啊计数器啊这地方我省略一下可以不行啊直接就这样啊。其实就是 把它复制出来啊复制一个到等号这一边就是每一次添加的时候呢我都是在原基础上再次累加这个托给他点 w 啊来试一下好点 你三哎再点再点再点 ok 好但是我希望中间呢还有个逗号把它隔开了啊要不然这样看呢蛮费劲的啊。逗号简单 啊再连接一个逗号 ok 好再来试一下 哎这样就搞定了啊虽然很长但是还是会显示的啊拖一下就可以了。 好但是第一个呢他也有个抖号这样好像不太美观呢这个怎么办其实就是在加一个判断而已啊。啊怎么来做判断呢在这个地方做一个判断啊一 好如果啊如果这个这个我弄筐如果 是空的啊那么才执行这句话啊如果他不是空的哎我是啊就执行这一句话 啊上面这个写错了啊上面这个把这个删掉啊就是如果这个文本框是空的啊第一次就直接写他就可以了啊就是他的值啊不要有任何这个累加也不需要有任何的逗号 啊但是第二次如果他不是空证明他有了所以才要叠加才要有多少个看啊这样就可以了啊来测试一下。那点击这个 啊我去这个地方没写啊按你的衣服 ok 继续。好这 就点一下哎再点再点再点 ok 没什么问题我们选中了姓名之后我们就填入一个金额好当我们点击这个确认的时候呢,我希望这些姓名所对应的这个地列 填入我现在输入的金额啊,这个怎么办啊?有两种办法,第一个办法就是我在点击确认的时候,首先我把这个文本的内容提取出来进行循环啊, 每一个名字把它提出来进行循环啊,至于怎么提啊,我相信大家看到这一章节的话呢,已经有办法了,用正则表达式来提啊,因为他们每个中间呢都有逗号啊,这样呢,我们提取中文还记得吗?一到和然后加就可以提取每一个姓名,每一个姓名提出 出来,然后啊我对 b 列进行查找啊,放一查,找到了之后,我获取他的行号,然后通过 clus 多少行,就是查找出来这个变量列,就是第四列啊,这样呢,我就把这个金额输入到这个 clus 里面就可以了 啊,这是我的第一个想法,但是这样会有两个问题,第一个,这个比较繁琐啊,要写这个方案的,第二个姓名很可能会重复啊,所以呢会造成不准确啊,这个怎么办?其实我想了个折中的法案, 就是当我们点击这个姓名的时候呢,我希望同时能记录下来我点击的这些姓名所在的单元格地址啊,比如说我点击这个无文家,就是 b 三这个单元格地址记录下来啊,这个记录下来怎么来记呢? 其实我们可以在这个文本框里面呢再做下手脚啊,在这个窗体里面我们再来画一个文本框,那比如说 我随便画一个好,这个文本框就是啊 box 三,我希望用这个文本框来记录他的地址啊,姓名的地址,所以我在这边改一下啊,啊,这个地方我来改一下, 好,这地方就不是记录这个 w 了,而是记录 hs。 好,注意了,这里要啊零 啊,为什么呢?我记录下来不是一个绝对引用的啊,而是一个,比如说 b 三,而不是旁边还有这个美元符号,这个绝对引用啊,这个地方改一下啊,就是文本框一记录 的是值啊,给我们肉眼看的 box 三,记录的是地址啊,同样的,这个地方呢也改一下啊, box 三记录的是这个, ok, 我们来测试一下 啊,要用点点点。哎哎,这个地方怎么没什么反应啊,我来看一下。哦,这个地方我忘了改啊,这个地方没改啊,这个地方没改 好,再来测试一下。 点点点点点点, ok, 两边都在记录啊,这个地方其实我并不希望用户来看到啊,就是使用这张表格的人怎么把它隐藏掉呢?我们可以 把这个呢窗体先放大一点啊,比如说放到这么大,我们可以把这个窗点的放到下面去啊,然后再把它缩小一点啊,这样调 就可以了啊,这个时候呢,这个用户是看不到的啊,但是实际上他该记录的时候还是在记录好这个事件呢,我们就写完了啊,写完之后,接下来我们就要写这个命令按钮了啊,这个命令按 按钮,我们来到这地方啊,选中这个命令按钮,双击啊进去,这个时候呢,我们把代码写在这个地方,就是命令按钮的单击事件啊,就是我们每次点击这个命令按钮的时候呢,他就会运行这里面的这个代码。

大家好,我是老吴,欢迎观看 excel vba 入门开窍课程,这节课我们来学习一个查找函数,这个函数也作为第一章节的补充知识点, 因为这个函数用的频率还是比较高的。好,我们来看一下这个函数啊, a s t 二,这函数呢,他指定一个支付串在另一个支付串中最先出现的位置。好,我们来看一下他的语法,他一共有四个参数啊,我们平时用的呢,只是用这两个啊,就是必选这两个就可以了, 前后这两个都是可选啊,用的比较少。好,我们来看一下这个设置每一次搜索的起点,如果省略,将从第一个字符开始搜索啊, 我们通常省略第一个参数呢,从第二个开始写起,就是默认我们从这个支付串的第一位开始来搜索,然后第二个参数就是 你需要这个带搜索的这个支付串啊,第三个就是你要搜索什么支付串啊?第四个是一个指定支付串的比较啊,这个东西呢,用的比较少啊,如果大家感兴趣呢,可以自己去在线帮助的去看。好,我们来演示一下。 好,比如说我现在把一个制服串呢,先复制给一个变量,是 t 啊,这个制服串我就写, 欢迎学习 vba。 好,然后我进行一个查询啊,我现在要查询这个学字出现在什么位置,那我就可以这样写, 欢迎 st 二,待搜索的这个支付串,那待搜索支付串呢,就是这个 t。 好,我要搜索什么支付串?冒号最后一个参数也可以,不 就写两个就可以了啊,我要搜索学这个字出现在这个制服串的第几位,我把它呢复制给一个变量啊,这个复制是一定要复制的啊,不复制会报错。好,我们来看一下。 好,他返回了三,这个穴呢,他就是位于四五串的第三位,我们再来尝试一下第一个啊,第一个参数,比如说我在后面再加上一句话, 欢迎关注 化学 excel。 好,我现在把第一个参数改成三, 哎,他还是返回三,不是说从第三位开始往后查找吗?啊,不是要改成四 啊,就是从第四位这个位置,就是从席这个位置再次向后搜索,看一下有没有学这个字啊,如果有的话就返回 啊,返回了十四。好,比如说我从十五呢啊,我从十五开始往后找,再来找这个学字,看见没有,哎,他就找不到了,他会返回零。 好,我们搜索的这个制服串呢啊,还不是说只能是一个字啊,他可以是一个词,比如说啊, vba, 然后再来查找,我们先把这个第一个参数呢,先把它去掉, 好,返回了五,我们来看一下是不是第五,一二三四五啊,就是这个词,在这个支付串里面第一次出现的这个位置,就是这个微的位置。好,我们用这个 i s t r 呢,就可以来做一些取值 啊,比如说我们批量提取了文件夹里的所有文件名,这些文件名呢,它是包含有后缀名的啊,比如说像这样工作后呢,后面跟这个 x l x x 一个是要工作部的这个后罪名啊,比如说还有这种 txt, 我们之前是用这个 repids 来进行一个替换啊, 啊 repay, 我们先把这个 t 啊放进来,然后我们需要替换的这个东西是点 xlsx, 把它替换成空,然后再把它复制给 t 啊,这样的话呢,他就可以实现一个替换啊,这个替现在已经变成了这个,欢迎学习。 vba 没有这 后证明了,但是这样替换呢,是写死的,比如说我现在把梯放过来啊,他就替换不了了。 为什么?因为这个后罪名呢?他不是这个 xlsx 啊,他变成这个 txt 了,你看 tv 没变化。所以像这种面临这种后罪名不确定的情况下呢,我们使用这个 i str 就比较方便了,我们可以先对这个制服串呢进行一个查询, 查询是查询这个点啊,这个点位于第几个位置?我们来先来看一下。啊, 啊,这个点位于第八位啊,就是这个地方第八位。好,我们可以通过 shift 函数啊,取的字不算是 t 啊,取几位 八位吗?啊,不是啊,八减一, ok, 我们再来试一下啊。哎,你看这个 x 呢,他就是欢迎学习。为别了啊,即便你现在把这个 t 呢换成 t 一,也没有关系啊,他一样会渠道 欢迎学习。未必啊,还是这样的,然后他把点 txt 把它剃掉了,这是 i s t r 函数的一个作用,他还有一个作用,他还可以判断某个制服串是否包含着另外一个制服串。我们刚刚在演示的时候就知道,这 这个 i s t r 呢,他在查找一个字母串的时候呢,如果查不到,他就会返回一个零,比如说我搜索一个这个, 那这个 u, 那肯定是查不到的,此时 x 是零啊,所以呢,这个函数非常友好,他查不到,他不会爆出 啊,他返回一个零,所以我们可以来做一个判断, en s t r 这个函数呢,有没有包含?这个有,如果他返回的 不等于零啊,不等于零,就证明是查找到了啊,你这边写不等于零,或者写大于零啊,都是可以的。那么就表示呢?包含 啊,现在是不包含啊,他没有包含优,比如说把它换成这个微 好,他就显示包含了。好,这里注意了,他是区分大小写的啊,如果是这个小杯呢啊,他是不包 好。我们现在已经知道了 anst 函数的一个用法,我们还可以附带着学习一下这个函数 啊,就是在后面再加上一个 r 一 v, 这个函数呢,他跟 i s t r 是一样的,只不过呢,他不是从左往右查询,而是从右往左来查询,这样呢,我们就可以灵活的应用。 比如说当我们面临着一个判断啊,比如说这个判断他是这样的 啊,比如说我们现在面临着一个这样的一个单号啊,这个单号分别为型号,然后杠啊,一个型号,然后再次杠,然后再写上这个出场地。比如说我们现在批量想取这个北京,但是这个地名呢,可能会改啊,比如说叫石家庄啊,他就是三个字啊,怎么才能取到后面这个地址呢 啊?如果你用这个 i s t r 函数,当然也可以啊,查第二次这个杠出现的位置,然后再去取后面的东西啊,但是这样没有必要。好,我们直接可以在后面呢加上一个 r 一 v, r 一 v 好查询的这幅串是 t 好,要查什么呢?查这个横杠,然后返回给一个变量 x, 好,我们来看一下这个 x x 十三来看一下,一二三四五六七八九十十一,十二十三。哦,找到了,这 注意了,他虽然是从这边往后找,但是呢,他返回的位数还是从左往右数的位数啊,这个需要大家注意好,返回了这个十三之后呢, 我们就好办了啊,我们可以使用这个密的函数来进行取值啊,密的好,取值的是这个 t 好,从什么地方开始取,从这个位置 加一取多少位?我不知道啊,我可以写一万,写一千都可以来看一下啊,就取到北京,如果你这张改成齐齐哈尔啊,也不会错 啊,齐齐哈尔啊,这个蜜的函数呢,其实后面这个参数我可以不写啊,就是有多少就取多少就可以了 啊,他同样的渠道,齐齐哈尔, ok, 那关于 i s t r 函数的基础用法呢,我们就讲解到这里,下节课呢,我们再来用这个 i s t r 来做一个案例 好了,那这一节课呢,就讲到这里,感谢各位看官的支持,如果这个视频能帮助到你,请帮忙点赞、收藏、转发,我是老吴,关注我,下节课我们将学习新的内容。


vba 红编程实操案例,用 vba 红实现快速对比两个表格数据,并标记不同。好,欢迎观看本期视频。本期呢,我们用 vb 红呢哈去快速对比两个表格数据啊,比如说我们这边有一个生产产品,一个生产参数表 和一个标准表啊,然后我们这样去对照两个表里面的数据,如果说呢,每个产品所对应的四个参数跟标准表里面的四个参数呢,是完全一致的,我们就认为这个产品是合格的,有一个不一致呢就认为是不合格, 在这个地方呢,去标记出是是合格还是不合格产品。这第一步第二个呢哈,同时呢哈,到底是哪个参数不合格,我们要把它那个啊啊不合格的那个区域哈,就是哪个参数不合格的话,就哪个单元格呢,给他标记一个背景色啊,是这样一个效果。我们的实现思路是这样的哈,首先呢, 从第一张表中啊,是去循环这一列产品,取到每一个产品的一个值比,说第一次的话是 a 产品,然后呢取到这个产品值之后呢,去这这个标准表里面去循环第二次啊,去找这个产品,找到之后的话开始对照两组参数,这两组参数啊,哎, 那我说哪一个参数不一样,如果说有全部一样的话,我们就返回合格,有一个不一样的话呢,那就返回不合格,并且呢标记这个底色。嗯,这边的话呢,稍微有一点难度啊,主要是逻辑上的一个难度。 好,主要运用的知识点呢,就是双重循环。我们来写一下说明两个变量啊,分别是,嗯,两个单元格里面的两啊,说明两个 rg, 一个是 rg rg 一啊,分别是呢啊,单元格对象。好,然后接下 下来啊,我写两个双方循环,第一个循环的目的呢?啊,是从第一张表中,就是我们这个生产参数这张表中啊,去取,取出每一个单元格直来啊,就是就是,第一张表可以这样写,第一张表中的哪一个范围呢?就是我们的 a 十到 a 二十三, a 十啊,到啊 a 二十三, 然后里层这层循环呢,也是一个道理,不过呢就是把里层这个循环的范围改一下,改成第二段比较容的 a 十到 a 十二十三, 这里哈直接嵌套两个循环。好在这循环当中呢哈,首先呢哈外层这一个呢先取一个,嗯,就外层这个值哈跟里层这个值呢,要做一个对比啊,里面这个是 一哈看一下二记一,如果说哈,你说我们第一次的话,从这里面取到 a 产品,比如说哈,举个例子啊,从这个生产参数里呢取到 a 产品,然后把这 a 产品呢哈去拿到这里面来找一下他在哪个位置啊,比如说在这个位置找到之后呢哈返回他的组队的号,也就是二 g 一的号,二 g 一的号, 同时呢我们也要知道什么 lg 的行是在哪一行,第一次的话是在哪一行是在第十行, ok, 两个行号呢都要返回,所以说这里啊,如果说此时他的一个,他的一个值啊, 他的一个值等于什么呢?而第一的值 我们呢就给他正常啊,返回他他们的号号,一个是定一个变量饵, 然后呢第一个变量二一,然后此时的话,拿到这两个好号之后呢,我们就开始对比啊,两个表中所有的这个啊,那个开始对比两两组表中的一个数据了啊,每一个单一个指是吧?啊,就第一张表中的第一张表哈, 第一张面中呢啊, a, 从从什么从 b 列开始啊? b 啊,连接一个 r, 然后呢啊,如果说他等于什么呢?第二张表中呢?把它复制一下。 第二张表中呢啊,必列的纸是吧,不过这是领的二一啊,同时什么四个参数多少项一支?就是这个地方我们需要写四个复制一下,然后呢加上一个案子这边哈,我主要是用了 一个,用了一个换行服哈,因为他那个公式比较长,然后把这一行也复制一下好,然后最后的话是 z, 然后是 a, 好,我们改一下哈,就是这里面是 b 列对照, b 列, c 调对, c 照, c 列对照 c 列啊, d 列对照, d 列,一也对照一,本质上就是什么?就开始对照哈,第一张表中的四个参数啊,跟第二张表中的四个参数是这样,好,我们再来看一下哈 啊,如果相同的话,我们给他返回什么呢?给他返回啊啊,就说哈,这里的话哈,我们应该是给谁复制啊?应该是给最后一张表,就 f 列的这张表对吧?就是 shit 一档 ff 列的纸, 让他等于什么?等于合格就可以了。合格好,这是 f, f 的值啊, f 的值 ok 啊,另外呢, l 四,如果不是呢? 如果不是的话,首先是什么?这 f 列是不合格,他等于不合格。 同时呢,我们还要判判断什么,判断一下到底是哪一个参数不合格,所以说哈,这个地方要做四四个参数的对比是吧?啊,如果说这样啊, 如果说第一组值啊,就第一个单元格里面的值,如果是比例不相等是吧,然后呢 b 列不相等的话,我们就把 b 列当中这个的背景给它设置优 红色吧。啊,等一个红色啊,这直接用一个 r g b 参数的形式,同样道理啊,我把后面呢直接几种情况都放上去就可以了。好,第二个呢?是啊, c 点,第三个呢是第一点 一样的哈,弟弟,好,都改成 d 啊,这个是 e 哈,这个是 e。 好,这样的话我基本上这样一个逻辑呢,把它这个代码都写完了,非常简单啊,就几层逻辑啊,把它稍稍会欠套一下就可以了。好,我来执行一下看看行不行。好,然后我们这个地方啊,点击物件指定红啊,去找到我们刚才写的这个对照。好,我们点一下 检测。哎,可以看到哈,此时呢所有参数不一样,都标红了,而且呢会返回手不合格,其他的完全相同的都返回了,合格 可以看一下啊,没有问题。然后这次哈我就实现了这样一个效果啊。啊,主要呢掌握这个双层循环的一个应用和一些那个逻辑的一个用法。好,本期到这里,那我说下期呢哈,我们再见,感谢大家呢多观看和点赞我们的视频,下期再见。

大家好,欢迎观看 vba 基础入门教程,这节课讲一下如何获取数据所在的区域。 我们工作表中的数据会经常更新,如果在写 vba 代码的时候,指定的是一个固定的区域,这样使用起来就非常的不灵活,因为每次更新数据,我们都需要修改一次代码,而我们想要实现的效果是 当工作表中的数据变化时,程序会自动识别数据所在的区域,这样就不再需要修改代码了。常用的方法有三种,每种方法都有各自的优缺点。这节课我们先来学习前两种方法。 先来看第一个方法, use the range, 它是工作表的一个属性,意思是工作表中已经使用的区域 也可以叫做编辑过的区域。比如现在我们要选中左边这个工作表中的数据来写一下代码, 因为它是工作表的一个属性,所以我们先要指定工作表。在之前的课程中,我们介绍过工作表的表示方法,比如我们现在使用工作表的 code name, 也就是代码名称, 然后点 use the range, 出现成员提示之后,我们可以按 tab 键补全, 然后点 select 选中来运行一下,可以看到选中的是 a 一到 f 六、解释一下这个 use the range, 它其实是通过工作表中 所有编辑过的单元格,从这些里边寻找。最小的行现在是第一行,最小的列第一列,然后他们当中最大的行 是第六行,最大的列是 f 列,所组成的这个区域就是 us the range。 比如说现在我们在第九单元格再输入一个值,这个时候所有编辑过的单元格当中 最小的行还是第一行,最小的列是第一列,然后最大的行是第九行,最大的列还是 f 列,所以现在应该就是 a 一到 f 九这个区域,我们来运行一下, 选中的就是它。所以 user range 它的优点就是不管我们数据写在什么位置,它会包含工作表中的所有数据,不会缺少。我们再来看这个词编辑过的区域, 在工作表中输入内容属于编辑,其实修改它的颜色,比如说我们添加一个底色,同样属于编辑,现在我们在运行,他的范围就会变到第十一行。假如说我们再把颜色 选择无填充再运行,它同样会包含这一行。我们再举个例子, 我们经常使用公式,公式偶尔会返回一个空值,假如说我们把这个空值粘贴为值, 这样我们在单元格里边是看不出来的,然后我们再运行它,就会包含这一行的数据,这个也就是 use the range 的一个缺点,可能有一些不可见的数据在里边儿,我们发现不了,然后我们使用 use the range, 他会选中所有的区域,也就是说下面这部分都属于无效区域。举一个极端的例子,在最后一个单元格突然做了一个修改, 但是我们不清楚,没有发现。这个时候我们在运行,他会把所有的全部选中。 试想一下,假如这个时候我们执行代码,这个代码需要处理一百多万行的数据, 肯定就会特别的卡,所以 usage 它的优点非常突出,但是它的缺点也特别的明显。 再来看第二个方法, current region, 它是单元格的一个属性,意思是单元格所在的区域, 这个区域是和单元格组成的连续的区域。比如说我们现在要选中左侧空格表中 a e 单元格所在的区域,我们来写一下代码,因为它是单元格的一个属性,所以我们先要指定单元格 润折一,然后点 current ta 不见不全,然后点 select 运行一下, 它现在选中的就是 a 一到 b 六。比如说我们把 a 一换成 b 九,也就是 b 九,单元格所在的区域在运行, 它就是 b 九到 c 十一。假如说我们在这个区域里边删了几个数据, 我们改成 a 一,再运行,它同样是这个区域。 所以这个问题的重点就是什么是连续的区域。我们可以判断这两个区域当中是否存在单元格,使他们的行连续并且列连续。我们来举一个例子, 比如说我们在第三输入 a, 在意四输入 b, 现在我们就把这两个单元格看作两个区域,然后第三他的行号是第三行,意四是第四行,三和四行是连续的。再看列第三单元格,他在第四列 e 四单元格,它的第五列四和五也是连续的,所以它们两个就是连续的。我们现在把这个单元格改成第三, 再运行一下,它组成的区域就是 d 三到 e 四。其实有一个简单的方法,就是我们可以把鼠标选中任意一个单元格,然后按键盘上的 ctrl 加 a, 这个时候他选中的这个区域就是 current region。 比如说我们选中 c 十, 然后 ctrl 加 a, 他会选中这个区域,然后我们选中 e 四, ctrl 加 a, 就是这个区域,这个方法可以帮助我们理解,所以当我们在选择一个连续区域的时候, 卡润的瑞真就特别的方便。当然我们首先要把连续的区域这个问题要搞清楚,下节课我们再讲第三个方法,第三个方法也非常的实用。好,以上就是本期视频的全部内容,我们下期再见。

大家好,我是老吴,欢迎观看 excel vba 入门开窍课程,这节课我们来讲批量清空,批量清空应用到的场景呢,就像现在这样,我把这个窗体呢已经填满了,我现在点击录入 啊,这个内容是没有问题啊,把它录进来了,但是现在如果我想进行下一单的录录呢,我就要把这个已有的这些东西全部删掉。单选框呢?我都没法删掉啊,我没法把它点成空啊,特别是这个副选框呢,我要一个一个点 啊,这样就比较麻烦,所以呢,我们必须通过代码来一次性把它全部清空掉, ok, 我们来写下看啊。首先清空一个空间的内容是很简单的, 比如说我想把这个文本框一的值清空,其实我就是把它复制一个空给他就可以了, 那这样就清空了。如果是一个逻辑值,比如说像这个凹陷巴腾,那像这种逻辑值把它清空,其实呢就是负值,这个 把这个 boss 复制给他呢,就等于是清空了啊,但是用这种写法呢,不是说不可以,而是呢比较繁琐。 你像我这个窗体呢,一共有这个三个文本框就要写三下,有两个复合框写两下啊,这里有四个复选框写四下,六个单选框写六下啊,这样就很烦,而且我这个窗体空间呢,并不是很多,如果这个窗体空间非常多, 那写起来呢,会非常繁琐,所以我们肯定是不能通过这种来写的好,批量来写就是循环,循环有两种办法啊,一, 这种办法就跟我们这个填入兴趣的时候一样啊,我们首先知道这个复选框呢有四个,然后我们通过这个货循环 e two 四,然后通过这个 ctrl s 这个集合的这种写法 啊,去动态的去获取每一个复选框的名字,然后把他的这个 w 改成 boss 就可以了。好,但这种写法呢,他有个弊端, 你首先得知道他有几个复选框,几个文本框,如果这个窗体进行了更改,比如说增加了一个复选框,那这种写法你就得去改,这样呢,也不是很方便。好,所以我就不是用这个货循环,我是用这个货一起循环,那就是循环对象 啊,就叫做控件吧,对象集合是优质 flam 四的 ctrl 式集合 好,可以做一个定定控件。哎,把它声明成一个恳求。 ok, 好,我们首先看一下他是怎么来循环这些空间的,那把他的名字弹出来,我们看一下,做一个断点,先 调出,然后点一下,这个录入好, f 八,逐步运行一下。好,第一个文本框一啊,就是这个了。好,第二个啊,这个是一个标签,标签一就是这个姓名 啊,继续啊,标签二啊,这个是命令按钮一,那就是这个,这个确认录入好,继续。 o 型八筒, 这个是单选框啊,二啊,三四五六啊,一共有六个单选框啊,然后是这个框架好,然后是副选框啊,一共有四个副选框, 然后又是这个标签啊,然后是这个复合框一啊,标签啊,复合框二啊,标签 啊,文本框二,文本框三,好,标签六啊,标签七啊,结束了,所以呢,我们通过这个循环,我们是把这个里面所有的空间都循环了一遍,但其实我们只需要改变其中三 三种空间的内容就可以了,只是这样写啊,直接把这个空间的这个啊, tst 啊,把它射成这个空,肯定会爆错,为什么?因为有些他不是 fast, 有些是 w, 那这个怎么来处理呢?其实我们可以在这个循环里面来做一个判断啊,以空间 啊,空间的名字,如果等于我们特定设置好的,比如说等于这个 t 一 xt, 好,那就证明他肯定是一个文本框啊,这个时候呢,我们就可以把他的 太子的这个值呢色成空。好,但是我们这样写可能会有点问题啊,因为每个文本框的名字呢,都不是完全一样的啊,所以呢,我就用了一个密的啊,这个密的取值从第一位取到 第四位吧。好,我们就这样写一下,我们把这个复制一下啊,四位,接着我们就 l e, 然后再把这个复制一下。 好,如果取出来直 是什么情况?再来看一下,这个,好,这个就代表着复合框。好,如果是复合框呢,那就是把他的歪柳射成 boss, 还有一种是欧布逊八腾这个,那也选四个,那复制早了,我们先把这个复制一下。好,继续 iose, 如果这个 地方是凹陷八层 啊,一样的,把他的直射成 boss 就可以了。 好,这三种我们看一下是不是也就已经搞定了啊,还差一个啊,差一个这个复选框啊,继续。 好,复选框也是把它的直射成 空就可以了。好,如果不是这四种情况,我就不进行任何处理就可以了。好,我们来测试一下啊,我先打上一个名字 啊,身份证我就乱打两下, 确认录录好,这个时候报错了啊,有的时候我们并不是每次写完之后呢,就百分之百一条通过啊,肯定会有报错的情况。 很多人问我的时候,就是直接把这个运行是错误这个东西,这个复制给我看,他说这个错误是怎么回事啊?其实你如果只是把这句话给我看,我如果不结合你的这个数据和你的代码,我是没有办法判断你到底出现了什么错误。好,所以点下调试看下是哪一句话有问题。好,来到这里有问题了。

大家好,今天分享一个通过多个关键字调取数据的案例, 之前也发布过一期用函数调取数据的视频,但是这个呢,只能满足单个关键字一次性查找, 做不到在进一步的细化查找。另外呢,由于用的是数组公式,当你的数据量比较大的时候,表格会非常的卡,所以在这个基础上,我用 vba 写了一个小型的查询系统,以此来解决上面说到的两个问题,下面来演示一下效果。 为了节约时间,我提前模拟了一个查询的步骤,当然不局限于这个查找步骤,可以根据自己的实际需要输入关键字来查找你想要调取的记录。首先查找 所有姓陆的业务员记录,在文本框里输入一个陆,点击调取,所有姓陆的业务员记录就全部被调出来了,有陆光明、陆小飞、陆大飞等等。 第二个条件,只要姓名为陆小飞的业务员记录,那么我们在文本框录的后面输入一个小字,不用写全名陆小飞,只要写一个陆小就可以了。点击调取,那么只留下陆小飞一个人的记录。 第三个条件,只要录小飞二零二零年的记录,在文本框里输入二零二零,点击 调取,只剩下陆小飞二零二零年的销售记录没有问题。第四个条件,只要二零二零年中款式为休闲的记录, 那么我们在文本框里输入一个修字就可以了。陆小飞二零二零年的销售明细中,所有款式为休闲的记录就全部被调取出来。第五个条件,只要二零二零年七月份的记录 输入二零杠零七,数据里就只剩下陆小飞,款式为休闲 日期为二零二零年七月份的几条记录。第六个条件,只要卖投为 八八八八的记录,这个显而易见,只有两条记录符合要求,输入八八八八。 最后一个条件,只要客户名称里包含 abc 的记录,输入 abc, 只剩下最后一条符合的记录。这个查完了以后,我还想继续查询其他的内容,怎么办呢? 点击清空按钮,继续在文本框中输入你要查询的关键字。比方说我要查询二零一九年七月份的所有记录,输入一九杠零七, 所有二零一九年七月份的记录就全部被调取出来。我要查询客户 名称中包含 abc 的所有记录,点击清空,输入 abc, 所有公司名称中包含 abc 的就全部出来了。 时间关系就不一一演示了。下面来讲代码,在讲这个代码之前,我们先讲一下原理。首先我们要有一个数据源表,这样的一个储存数据的数据源表, 再进行首次查询,所有的数据都是通过关键字从明细表里面调取出来的。当我们第二次在文本框里输入关键字的时候,查找的对象就不是明细表里面的数据了,而是我们当前查询 界面的数据。比方说我们现在要查找嗯,陆大飞的记录, 这是第一次查询,是从明细表中调取的数据,如果我们没有点击清空,而是直接在文本框里输入第二个关键字,那么这个关键字查找的范围就是当前查询界面里的数据, 跟明细表没有关系了。比方说我们输入一个夹克的夹,这个 夹就是从查询界面刚刚调取出来的数据中去查找,而不是在明细表里面查找。点击调取获得的就是陆大飞所有夹克的销售记录,输入第三次,第四次等,后面的关键字都是同样的道理,只有当我们点 清空,查询界面没有数据了,那么所查询的关键字才会从明细表中去调取数据。 好了解了原理之后,下面来看代码声明一些变量声明, x y k 为整形 str 为制服型, arbr 为变体型,作为存放数据的数组。 这里的。 br 我定义的是一个三千行列数为十一列的数组,为什么是十一列呢?因为我们这个表格的数据表头有十一列。一会呢,我们会把满足条件的十一列数据全部写入到 bir 这个数组里。 变量的作用呢?一会我们讲下面代码的时候都会用到这里,就不再单独说明, 认准 a 三等于空,如果 a 三单元格,也就是这个单元格等于空的话,我就执行下面的代码, 否则呢,我就调用再次查找这个过程,也就是运行这段代码, 这是一个大的框架,如果 a 三等于空,也就表示是首次查找,那么我们就把明细表里面的数据装入到 ar 里,使其成为一个数组 str 等于形成一点 ticebox, 一点 tx。 是把文本框里写入的关键字交给变量 str, 我们在文本框里输入路小两个字,运行下 代码, 可以看到文本框里的路小就复制给了 s t r e fs t r 不等于空,也就是如果文本框里是有内容的话,我则运行下面的代码 负 x 等于二兔 u 棒的 ar 外层循环是对数组的行进行循环,从第二行一直循环到 ar 的最大下标,也就是除表头以外的所有行都循环一遍。 由于我们这个数据是装到数组里的,是在内存里运行,不是直接在工作表中循环,所以即使数据量大,也不会太慢。下面一句是把数组中当前行的第一列到 第五列,使用连接符连接在一起,组成一个字符串,也就是把 发货时间、客户款式、麦头以及业务员串在一起,与这个关键字进行匹配。如果自辅串中有存在这个 关键字,那么就将这一行的十一列数据全部写入到 br 数组里。这里变量 str 的前后使用了两个星号作为通配符,也就是匹配包含这个关键字以外的所有字符。这里要特别注意, k 等于 k 加一,上面这行数据如果与关键字匹配,那么 k 就累加一次作为 br 数组的含变量, y 呢, 就作为 ar 和 br 数组的裂变量。把 ar 当前行的十一列数据全部写入到 brr 数组里。由于这个数据量比较大,我们在这里设置一个断点, 让他一次性循环完,点击运行非常快,很快就运行完了,这是数组的一个优势。 运行到这一句,是把 brr 数组里的数据导出到单元格中。导出到哪个单元格呢?导出到以 a 三单元格为顶点,然后通过 resex 来设定这个区域的大小行为三千行。因为我们前面已经声明了 brr 数组的大小行为三千行,列数为十一列。尽管 brr 数组可能 没有这么多数据,大部分都是空值,但是这个没有关系,因为我们的表格里面也是空的。运行这些代码, 所有陆小飞的数据就被导出来了。到这里呢,这个首次查找的过程就结束了。那么下面这个 再次查找的过程是干什么用的呢?是当我们进行第二次以及后面若干次精确查找的时候, 就进入到这个过程里面。我们来演示一下,现在我们已经查找到陆小飞的所有记录,紧接着我要再查陆小飞二零二零年的销售记录。在文本框里面输入完二零二零以后,我们来运行 重新运行代码。首先进入判断 a 三单元格等于空吗?不等于空,因为里面已经有内容了,条件不成立。跳到 lc 这一段 块,再次查找调用。再次查找这个过程,这个过程呢,跟上面基本一样, 能不能合并呢?可以合并,但是没有这样分开来写。好理解。再次查找这个过程里的代码,与上面不同的地方在于,装入到 ar 数组里的就不是明细表中的数据了, 而是当前查询界面 a 三单元格到 k 列的最大边界中的数据, 也就是这个区域的数据。然后呢,直行与 上面代码同样的操作,这里就不再重复讲了。最后再讲一下清空的代码, 一个是清空查询界面 a 三单元格到 k 五千这个区域的内容,一个呢是清空文本框中的关键字,这个比较简单, 大家如果有兴趣呢,可以参照视频在自己的 excel 里面敲一敲,这样更容易理解每句代码的作用。好了,今天的分享就到这里,感谢观看。

下面讲一个案例,是重复编码数据的匹配,基本需求是这样,这个表格里面有相应的数据啊,这是 abcd 列,我们放大一下看一下 这一部分,他是有重复编码的,然后每个编码对应的公单数量,注意一下公单号 和共单行号这两个数据,它虽然这个编码是一样,但它不一样,但是呢我们要匹配到这里,这里面是这 h 列呢,事先添加好了编码,还有对应的需求数量,这个需求数量就对应的这部立的数量, 然后呢你要添加上对应的公单号,公单号号这两个数据现在的原则是什么东西?这样可以从 上往下找,有个 a, 他有五个,那你第一个,那肯定这个数量五够,那就填他,然后五填完过来一个,这还剩四,哎,这正好四,那么够,再填上他,然后呢下面又是一个 a, 那我从这个 a 去取 取他的三,因为他有三个是有一个 ok, 够了,添加上用的是这个对应的很好。那么 b 呢?我们看一下 b 啊, b 的一二四,因为 b 比较多,四十啊,他都一样,一二四,他们没远远没有达到四十,那么 c 稍微能麻烦点。三个 c, 第一个 cc 后面是数量是五, 那么第一个 c 呢是一二,这个地方都是三,都能满,五都能满足,那么最后相当于把这个三跑出之后,这地方剩两个是二,是吧?这样,然后这里面是三,这地方是三的,那么之后直接把这个三拿过来,因为他已经是二不够了,那把三这也拿过来, 添加是这个,然后下面呢又是二,二,正好他上面的剩二,那 ok, 这个拿过来,所以说他们注意加这个 c, 他加他,他们正好是把这个用完了,最后把它用完,剩一个八八呢呢,很自然,你就用这个啊,用这个取八就可以,基本上就这样从上往下取,往这边添加,让我们看一下我们的代码 在哪里,依然用四点啊。然后呢? aidaicantv njaiicantinanj, 我们讲过 constantiness 啊,就是他有个连续区,因为中间用行列隔开整个连续区啊。然后呢?对 air 进行电力。 我们先判断我们用的是字典嵌套啊,字典嵌套的案例之前我们讲过这个先判断,如果字典当中他不存在这 编码的话,那么我们就要创建一个字典,嗯,这个编码啊,就相当于他当成一个整体,你说这点情况,你就把他当成一个整体就 ok 了,把他再创建一个字典对象。 那么这时候呢,我们把行号做作为字典的建制,把它对应的数量,这第二例啊,数量作为他的值,这样放下,因为刚才说你把它看成一个整体, 然后把它作为他的行号,把把把那个行号作为他的剑池,把那个后面的数量作为他的值,因为待会我们要填他的时候,我们要回到这表里,就获取这两页数据,对吧? 第一个要考虑数量,另外还要获取这两级的数据,我们用了这个 ar 领的行号,我们很容易可以获得获取到这两个数据,我们用的数量,数量你可以直接往下解,然后通过你 数量先判断是不是满足他。所以说我们这个地方就是正用的这个字典啊,下面就 brbr, 我们也用的是抗生音质啊, 就是第一这个位置啊,因为这里面相当于这个数据是没有的,是我们代码填上去的,其他数据都有的,所以呢,看人家这个,然后这个时候我们便利变啊,变了,变啊,之后呢,我们先 对你字典的每一个大家注意一下啊, k, 这个 k 对应的是地他,我们刚才说你可以把它看成一个整体,对应的是 brg, 就编码对应的这个字典,对,简直集合是这样的,就这个地方,你看看这个编辑他,他就是对应的这个编码,比如说第一个是 a, 这个编码所对应的所有的 k k 值,而这个对的 k 间值呢,实际上就对 a 二二里面的行号,对吧?对于这里面来看, 所以呢,我们这个时候就判断,第一个是你这个数量是不是大于 b r r b r g 二,有,这这里面的数量,对吧?刚才说了,这个你当整体看这个字典当中呢,是这个编码对应着 k, k, 刚才说了, 就这里面对着 k 啊,这个值也就相当于这个值你对应的数量,你这里面的数量,如果他大于等于 b r g 二这里面的数量的话,那我们就直接可以用这个,所以说它的数量我们要先减去 b r g 二,然后呢,我们对 g 二、 b r 二的第三列进行复制,我们前面 加了个逗号啊,加了逗号,单引号,绊脚的单引号,这样是保证数值能转成文本格式,这之前我们也讲过,对应的就是啊第三类,那第四列对应第四列,那找到之后呢,我们就退出这个循环,然后 退出这个放意识内部循环,然后再他再出来找下一个值,我们依次这样循环,最后保证这个值填数值回去满足我们的需求。我先把它删除了, 尽情看一下, 这样就直接出来了。

大家好,我是老吴,欢迎观看 excl vba 入门开窍课程。上节课我们对密码的位数进行了限制, 不能低于六位,也不能高于十位。这节课呢,我们对这个密码的限制进行一个升级,我们可以要求在设置密码的时候要包含至少三种元素,比如说大写字母、小写字母和数字。 这种要求呢,我们在平时的生活中也会遇到过,比如说你注册一个论坛,或者你注册一个游戏账号,都会有这种要求,这样可以提升密码的安全性。 ok, 我现在演示一下账号 啊,六个七密码我先不说,先把这个员工工号输一下,这个员工工号和姓名呢,是我事先设置好的,如果我事先没有设置也不能注册,我们现在来设置密码。好,我先输入六个一。 好,我现在尝试注册好,他会提示密码中没有同时包含大写字母,小写字母、数字,我现在加一个小写字母。 好,再来测试一下啊,依然提示好,我必须加一个大写的字母啊,我随便加大写字母,加进去之后啊,注册成功。 ok, 我们现在就可以用这个账号和密码登录 好。这个效果是如何完成的?首先我们来看一下这个代码。 好,如果你没有看过之前的课程呢,建议先去看前三节课,然后再来看一下这节课,我们是在前三节课的 码基础上再次增加难度。这一串代码呢,就是对这个密码的三个元素来进行限制的啊,很显然,我们用到了这个正则表达式。正则表达式就是本合集教程的第四章节啊,我们花了大概有十七八节课来讲这个正则表达式, ok, 我们把这个代码呢,先把它删掉啊,重新来写一下啊,这句话我就不删了啊,正则表达是到后期绑定啊,永远都是这么写。 好,首先来构思一下这个代码怎么来写,我要对第二个文本框,也就是输入密码的文本框的值进行个匹配。好,第一步我要匹配这个大学字母, 第二步我要匹配小写字母,第三步呢,我要匹配数字,我们需要写三个政策表达式,所以第一时间我们就要想到。好,我们要使用循环来写入这三种政策表达式 样的名称,我就叫郑泽啊, j。 一,然后在一个数组里面进行循环啊,这个数组呢,我们就用艾瑞这个函数啊,三个政策表达是我们先把这个格式写好了。 好,第一个就是大写字母啊,大写字母啊,非常简单啊,这个正则表达是由于太简单了啊,我就不在这个正则表达式的测试工具里面来测试,我就直接写了啊,小写字母,小 a 到小 j, 然后数字杠 dok。 好,下一步呢,我们把正在表达式的这种常用格式写好了 啊,首先是 global 设置成处 好,第二个是 pat, 这里我就不是直接写正着表达是了啊,而是我写上这个变量啊,就是每次循环的时候呢,用这个变量来代替我写这个正着表达,是这样就能起到循环的作用了。 接下来我们就要使用正确表达,是一个方法啊,就是匹配依然是用点,然后 tst test 好,然后所匹配的这个内容就是文本框二。 好,接下来我们就要进行判断啊,衣服如果这个地方匹配上了,就会返回处啊,匹配上 我们就记录一下, n 等于 n 加一啊,进行一个累计三个正在表达式就会循环三次,轮流对这个 输入进来的密码进行匹配,如果匹配上 n 就会累计一次。最后面我们就可以在这里做一个判断啊,如果 n 小于三,如果这个条件成立了,就证明呢,你这个密码里面没有包含这三种元素。好,所以我就可以 先告诉你一句话啊,买手机 box 密码中没有同时包含大写字母,小写字母 数字。好,然后冒号 excess table 结束。 ok, 我们来测试一下。好,我随便输个账号,一二三四五六。好,密码我就先输,一二三四五六,一二三四五六啊,六个一。员工号呢,我就写上,事先我们写在注册表里的。 好,上节课我们讲注册限制的时候呢,我们规定了,只有我们事先写入到注册表里的才能进行注册,但是我们有规定,一个员工号可以注册多个账号, 其实如果你要限制的话也很简单啊,就是在做一个判断,这个员工号之前有没有注册过,如果已经注册过了啊,就直接退出这个注册过程就可以了。 ok, 我们先来尝试注册提示了。好,我现在在中间加一个小 a。 好,再来尝试一下啊,还是不行,然后我再加一个大 a 再注册。 ok, 就成功了。好,我们来到这个注册表里看一下。 好,已经写进来了。好,没有问题。好,我们回到大马里看一下, 这段代码呢,只是做一个抛砖引玉的效果,其实你可以结合我们第四章节讲的所有知识,都可以应用到窗体里面来,比如说你要求第一个大写字母必须位于密码的首位 啊,这个怎么来写啊?其实你可以引用本合集第四章我们在讲郑州表达,是的时候有一节课叫做首尾匹配,你去听下那节课,然后再来写这个案例,这也是为什么我把窗体这一张结放在了本合集的比较考 后的位置。好了,那这一节课呢?就讲到这里,感谢各位看官的支持,如果这个视频能帮助到你,请帮忙点赞、收藏、转发。我是老吴,关注我,下节课我们将学习新的内容。