各位朋友大家好,今天给大家介绍一下 iphone k 肾这个对象的常用属性跟方法。因为他是 excel 程序的最高级别对象,所以他的多数属性都跟整个程序有关。首先是属性 sure, 这个经常会用到,在程序的执行过程中,屏幕会实时显示出代码,执行的过程屏幕会一直闪动,闪瞎眼,这个属性就能把屏幕刷新关掉,同时也能提高代码的运行效率。比如 如要把第三个工作表复制一百个,并在 a e 单元格随机填充底色,我们写一下代码,看下运行的过程,屏幕一直在闪动,看起来不太友好,只要在代码的开头把 surprise beat 的属性值设 置为 boss, 这样屏幕更新就被关闭了,代码运行过程不会显示出来,但最重要的别忘记在过程最后改回来,也就是把属性值重新设置为处,不然 excel 也没法正常使用了,在运行程序就只能看到最终的结果,而不会显示过程了。接着是 这个属性是控制对话框的,比如删除一个工作表,会弹出对话框让我们确认。如果把这个属性设置为关闭的话,就不会弹出对话框,直接删除包 或关闭工作部前的对话框。如果属性是关闭状态,就不会弹出对话框提示保存文件。所以在过程的最后,同样要把属性设置为处。接着是启用或禁用事件的属性, 用法跟以上的类似。然后是 fk 肾的方法 antam, 他能设置定时运行程序,比如实时显示当前时间,让秒数实时跳动,就是他的一种应用效果。我们看下他的代码如何编写。 首先写一个过程,在 ae 单元格显示当前时间,再写一个过程,定时启动显示时间,这个过程 动的时间是当前时间加一秒,也就是一秒后执行显示时间,这个程序要启动的过程名称是显示时间,过程名要加双引号。第三个参数是等待时间,因为 程序是按顺序运行的,假如把等待时间设置为十秒后,如果十秒后还没排到这个程序运行的话,我们设定要运行的程序 就取消运行了,就是过时不候的意思。第四个参数是否运行,默认是运行的参数是处,把参数设为 boss, 程序就停止了。关闭工作步前要停止,不然关不了。添加一个按钮,调用启动这个过程,点 击按钮,爱意单元格出现了时间,但是时间不会走动,咋回事?看下代码,原来是程序没有相互连接。在 a 一单元格显示时间后,需要在运行启动这个过程,原理就是运行启动这个过程后,一秒后就运行显示时间这个过程。而 在 ae 单元格显示当前时间后,在运行启动这个过程,那么一秒后又运行了显示时间这个过程,如此往复,就达到了时间每秒 秒跳动一次的效果。接着再写一个停止的过程,代码跟启动类似,只要把 otm 的第四个参数设为 boss 就行了。再添加一个按钮,调用停止过程点, 点击启动时间开始跳动,点击停止时间停止跳动过程中又不影响编辑工作,表按他还有很多好用的过程等你去开发。接下来是方法按 k, 它的作用是给一个过程设置快捷键,方法 out, 作用是撤销上一步操作效果跟 ctrl 加 c 一样。还有方法为可 已在过程中图设定等待时间,时间到了再继续运行过程。最后是方法 cat, 作用是退出整个 excel 程序,如果工作部没有保存, 就会弹出提示框,搭配 discoutit 可以忽略提示框不保存,工作部直接退出程序。每一种语言都有基本的规则,理解后相互搭配运用,就能编写出你想要的程序。以上就是今天分享的内容,谢谢大家。
粉丝1143获赞2067

大家好,我是柯南一梦。之前呢,我们在写 vba 代码的时候,我们都提到过,每次写的时候我们是不是都用一个 sab 和 nd sab, 但是我没有提这是什么意思啊?今天我们就来说一下这中间是什么意思。这中间其实就是 过程啊,叫做过程。这一个 shop 到 and shop 之间的代码就是就是一条过程,就是我们起的这个名字,比如说这个就叫做 shop a 就是过程 a, 或者也可以叫它 a 过程。当我们代码执行的时候,它是怎么执行的?它会去执行一个主要的过程, 然后执行完了他不会去执行别的过程。比如说这一个界面里面是能打多个过程的,比如说我可以打个 sabb, 他会出现一个 sabb, 但是你在 sabb 里面打的,他是不去执行 你在撒布 b 里面打的代码。如果你把光标点在撒布 a 这里,这个框里面就会出现 a 和 b, 你选的是 a, 你执行的就只是 a, 那么我们就可以把一些复杂的操作拆解成不同的过程,然后可以方便我们去调用过程,让我们的代码变得更有逻辑,更容易看懂, 这样就会出现一个主过程和一个子过程。我们主要执行的那个过程叫做主过程,次要的那些呢?我们管他叫子过程,其实 你也可以直接去执行此过程,只要把这光标点到这里,这里就变成 b, 你改成 b 了之后,你执行就会只执行 b, 比如说我在 b 这里,我让他执行什么过程?执行 message box, 我们 让他执行输出,输出我爱你这一句。如果我们直接执行 saba 那点了,是没有反应的,因为里面没有代码,他也不会去执行 sabb。 如果我们把光标点在 sabb 这里,过程蓝这里变成了 b 之后,我们再点, 他就会去执行我爱你,他就说出我爱你。那么我们怎么在萨布 a 这里调用萨布 b 呢?我们就要有一个方法,就是很简单,就是你要调用 b 的时候,你可以说靠 b, 就是直接直接 call b, 他就会执行了。虽然你这里是在执行 sub a, 但是呢,他就会 call b 的过程中,他就会执行这个 b。 同样的,我们还有另一种方法更简单,我们连 call 都不用,直接就写一个 b 就可以了, 也是可以的,所以靠带不带是无所谓的。这里呢,我们还有另一种过程,就是带参数的过程,带参数的过程,比如说这个 b 这里我是可以可以给他一个参数的,比如说我可以给他一个参数 name as string, 这样的话呢,他就带一个字符串参数,比如说我可以让他在我爱你的后面加上一个名字,加上加上这个 name, 这样这个过程他不能直接执行,必须要给他的 name 复制,他才会执行。 你要给 b 一个参数,比如说我给小明,我是小红,比如说小红我点运行,他就会蹦出来我爱你,小红,他是他的执行方法,就是在调用 b 的过程中,把这个小红这个字符串参数给他 啊,带进去了,带到了这个 b 里面,这个 b 就自动知道了啊,这一句的意思是 name 等于小红,小红就被复制到 name 里面,他在执行这一句的时候,他就已经会把这个我爱你和小红拼接起来去执行,这就是子过程的调用方法。

啊,大家好,欢迎继续学习小技巧精粹系列视频教程,这一节呢给大家来讲解一下如何在当前的工作部里面呢,通过微微代码 去打开另外一个 x 文件,把其中的工作表的数据啊考到当前的工作部里边来啊,这个我们一起来看一下这个实现的过程啊。首先呢这是一个空的工作表,这是工作表的标签上啊,就是他的这个工作表名称上,这个标签上打右键 啊,然后呢查看代码啊,直接进入到微杯的这个编辑界面啊,这是一种方式,当然还有其很多其他方式,你也可以进到这个界面啊,这个我就不在这个视频里,就不多说了啊,这个后续呢会有相关的视频的啊,会尝试不同的方法。好啊,我们首先呢插入一个模块啊, 这个在 vb 编辑界面的这个主菜单上有一个也是有一个插入的主菜单啊,在这里面呢,我们选择模块插入一个模块啊,然后呢我们把代码写在模块里边,好啊,我们先来去给这个 模块的,这给这个功能的代码呢起一个名字啊,萨布斯,晋城,这个晋城的名字叫该他啊,然后会车的话,这个他有一个自动闭合的功能,就是 m 的啊,就是他上下呼应的,这个就不用管了,我们定义两个变量啊,定义两个变量,第一个首先呢是我们的文件路径 啊,我们把它定义为文本啊,然后第二个呢,我们定一个工作部啊啊, idow book, 然后呢我们现在呢把这个文件路径啊给他设定为一 个输入框啊,就是英头 box 啊,这样的话呢就是我们的文件路径,如果不固定的话呢,我们可以自由的去输入 啊,不同的文件路径来指向不同的文件,这个灵活度呢,就比把路径写的代码里面要高多了啊。好,然后呢,我们来给一个提示啊,请输入啊,完整文件路径,就是 给这个用这一段代码的一个提示好了,这样的这个输入完之后呢,回车的话呢,这个我们的 pass 呢,这个变量呢就被啊复制为一个完整的一个文件路径了啊,接下来我们就要来读这个文件路径了啊,在 wb wb 呢是一个就是工作表,工作工作部呢,因为是一个对象啊,所以我们要用 sit 这个关键词 啊,如果普通的这个对象非普通的变量啊,不是对象变量的话呢,我们直接就把这个 nice 省掉了啊,这个注意这个细节啊,三十八等于啊, oppo 四点 欧喷啊,欧喷的是什么呢?欧喷的就是我们刚才这个给到的这个路径的这个文件啊。好了,现在我们就把外部工作表打开了啊,外部工作表打开之后呢下接下来我们来复制他的第一张表的内容 啊,这里边呢需要注意就是你要你对这个外部的要打开复制内容的工作表的那个数据结构啊,包括它里边的内容,你要非常清楚 啊,否则的话你有可能是复制不到你想要的数据,或者说复制进来一些不相关的数据啊,一定要知道你想要的一个数据那个起始点在哪里啊,这个就是要事先做好准备工作,然后再来写针对性的写代码啊,否则 代码呢就是只能根据你写的东西去抓取数据啊,如果你这个数据结果没搞清楚的话呢,很容易出错。好,那现在我们来打开 wb。 第二我是因为我知道我的数据在第一张工作表啊,在第一张工作表,然后呢?第二啊 rend, 然后是 a 一, 因为数据在左上角开始啊,上面没有多余的乱七八糟的信息啊,这个第一行第一个单元格就是数据的开始啊,然后第二 啊,卡瑞瑞镇啊,卡瑞瑞,卡瑞瑞镇,这个名字呢,就是以 a 一为其实点啊,凡是跟 a 一连在一起的这一片数据啊,都被定义为卡特瑞镇啊,然后点, 现在呢,我们把这片数据呢做一个靠背啊,做一个靠背好了,靠背完之后的话呢,紧接着呢,我们就要写你要把它复制到哪啊?复制到哪,所以我们在这个地方呢,因为代码太长了要换行,所以先打一个空格,然后一个下划线,这是 vba 里边的换行的标示啊,空格下划线, 然后回车啊,就可以继续写这个目的地代码啊,这个目的地代码的就是要粘贴在哪呢?就是 我不就是当前的这个空的工作部啊,然后这个我是啊,我们要把它放在一啊,放在一啊,或者说你如果不放心的话呢,你可以写这工作表的名称啊,啊,比如说是一,这个都可以 啊,然后我把它放到哪呢?放到这根新的工作表的还是啊 a, 一开始因为都是空 工作表吗?我就直接从左上角开始了啊,这样的话我们就把这个数据复复制过来了啊,数据复制过来之后呢,我们的工作表刚刚打开的,外部的工作表呢,就要关闭啊, clus 关掉,但是关掉之前呢,如果你不给他一个参数的设定的话呢,他有可能弹出一个框来问你是否要保存修改 啊,这个就耽误了我们代码的这个自动执行啊,所以我们现在直接把参数给他设定啊,这个叫 c 陈诊室啊,然后冒号等于直接 boss 就可以了啊,就是我,我不要,你给我保存,你直接关就可以了 啊,这就是基本的这个整个的这个代码啊,然后在这个基础之上呢,如果我们加上循环判断啊,加上这个其他的一些这种啊路径的动态获取的一些命令的话啊,我们就可以去把 这个一批的 xl 的文件啊,依次打开,把里边 n 多工作表的文件呢,通通的读到当前的工作部里边来啊,这个呢,我们后续有时间了再去详细的讲,就稍微就比较复杂了,你要懂一些分支判断,还有懂一些这种路径操作啊 啊,今天呢这节呢,我们就简单来讲啊,就只给你举一个例子,如何把外部的一个指定的工作表,就是你输入路径的工作表打开,然后把里边的指定的工作表的数据啊,然后拷贝过来啊, 明白大概这个流程啊,以此为基础的,我们可以更容易的去扩展到这个批量的执行操作啊,多表啊,多工作表,多工作部文件。好,然后呢,我们还要做一点点工作,就是,呃,正常来讲的话呢,我们不希望这个屏幕一会打开,文件一会发又关掉了,窗口闪 来上去的啊,我们一般情况下会呃把这个屏幕的更新的给它关掉啊啊,这个面呢叫 f k 圣代啊,苏人啊,不对挺,然后等于 boss 啊,先给他设成 boss。 就是你别问屏幕别闪啊,就是你打开几个文件,又关了几个文件,那些东西你就不用不用闪给我看。然后呢,到最后的话,你工作执行完了之后呢,我们再把这个屏闪呢,把屏显啊,再打开啊,再打开啊出就是他成对的,上面是先关掉 boss, 然后下边出 好了,我们来试一下这个代码哈,来试一下这个代码,看能不能成功啊,然后我们点运行,就这个三角啊,绿的三角,三角箭头点一下运行啊,他让我们输入入境,我输入,我给大家太小了,给大家看一眼,就是我输入的是啥啊, 我的文件在第一排啊,在探坡路径下啊,然后叫呃,员工这一放大,这个界面满屏跑啊, 综合绩效分析好,然后呢点 xxxx 就是你的路径,要这样说啊,就是他在哪个文件夹里边,然后他的具体的文件名叫什么,后缀什么,就是这样才算完整的路径。 然后如果我们点确定的话,点确定的话呢,我们把这个代码 好先恢复正常显示啊,我这个代码呢缩小啊,你看这数据已经过了啊,这个数据就是我们刚刚是空空如也的,现在这个数据已经 完全给考虑过来了啊,这就实行了我们整个的过程。好啊,我其实不太建议大家就盯着跟我要现成的代码啊,我非常希望大家能够根据这个界面的这个代码呢,能够把这个 代码自己敲一遍出来啊,自己写出来,所以我把它稍微放大啊放大,然后定定个你自己最好能够把这个东西呢啊亲手写出来,这才是学习的一个啊,比较有效的一个过程,老拿别人现成的代码,你永远自己不会写。 好啊,我就把它停在这,如果你想跟着学的话呢呢,其实就可以稍等啊。 好啊,就你是你就可以这个把里边一行一行的啊,跟着敲出来之后啊,写到自己的这个 ax 文件里面去执行就可以了啊,这节呢就给大家分享到这。

这个时候我们就要使用到这个 on 探子方法了,我们先写上啊, ok, 可以选。 ok, 好,第一个参数呢,就是我希望在我打开这个工作部的那一瞬间,往后推三秒,关闭这个床体,所以是计时的,这个时间呢,加唱 w 啊,零零零零零三啊,这个代表三秒钟好, 三秒钟之后要调用哪一个过程呢啊?这个时候呢就不是调用本过程了,我是要调用一个可以关闭这个窗体的过程啊,所以呢,我前提是要先把这个关闭窗体的这个过程呢写好了啊,我就写在这 这个模块衣里面,来啊,比如说这个过程就叫结束吧,啊,结束啊,有种拼音好,然后怎么写这个窗体的关闭呢?我们需要用到这个按肉的, 这个大家记住了,以后要经常用,然后写上这个你需要关闭的这个窗体名称 啊,关闭这个优质服装一啊,这个写好之后还没完,还要干嘛?还要把这个 excel 的主界面呢?再次恢复 好了,可以选 v 字,不好,就是把这个呢再恢复一下啊,设成 q 就可以了。 ok, 关闭窗体,然后逐渐变回复好,这个过程记下来哈, js 结束,然后我们在这个 个谁直播个 book 里面呢,第二个这个参数里面就写上这个结束啊,这种是冒号结束。 ok, 我们来运行一下,保存一下,然后关闭好,再次打开。 哎,这个时候就达到我们效果了。好,我们等三秒钟看一看。哎,没有反应啊,他没有关闭,这怎么办呢?这是因为我 我们在调用窗体的时候呢,他其实是有两个这个调用窗体的这个办法的啊,就是这个锈啊,这个锈呢,他有参数的,我们往后敲一下,如果你不输入任何参数呢?调用窗 的时候呢,这个窗体只要是打开的时候,他是不能进行任何操作的啊,我们可以来做个示范,比如说我再次插入一个床体, 好,然后我运行一下啊,这个时候穿体出来了啊,你看我点击任何地方都是不能进行任何操作的,但是我通过一个代码 啊,来调用这个窗体的时候呢,优质服装二点秀,然后我输入零, 然后来看一下啊,现在这个床底出来了,你看我可以进行操作啊,我可以删除,可以编辑这些一个效的啊,不会 影响任何东西啊,这个窗体呢,你看我看一下代码也是没有关系的,好像在回来哎,他还在这里,所以我们如果是要使用这种模式,就是窗体在的时候,我还想进行一些操作,我们就要使用窗体,这个袖后面呢要加一个零, 那就是这样,然后我们再来测试一下,关闭,好再次打开啊,一二三, ok, 搞定, ok, 这节课呢,我们学的知识好像有点多,首先我们是要记住这个欧文探这个方法啊,设置一个特定的时间来运行某一个过程啊,就是代替我们去关闭这个窗体。我们还讲了窗体的一个事件 啊,加载世界,加载世界呢,又涉及到一个重要的知识点,就是窗体的这些属性呢,可以手动更改,也可以用代码来更改啊,比如说这个窗体的名称是固定死的啊,不需要变的,你就手动更改。如果这个窗体的属性是一个动态需要变化的过程,那 肯定是要用大马来更改,看情况而定。好。接着就是这个吊用窗体的这个时候呢,哎,他有一个这种模式, 如果你不输入零呢,这个后面这个句话是没办法运行的。后面的课程呢,我们也会讲到这种模式的使用的一个场景, 就是窗体在的时候呢,我希望能通过这个鼠标点击输入一些东西啊,就代替我们手工输入啊,输入到文本框里面都是需要这个模式啊,如果你是不把这个零放到这里呢,这个窗体展示的时候,我都 没办法点这个单元格啊,也不可能用鼠标点击来代替手工输入。最后呢还想说我们学习窗体的时候呢,要适应这种代码不是写在一个模块里面的啊,以前我们都是写在一个模块里就全部搞定, 现在我们发现呢,这里写了一点啊,窗体里面也写了一点,那在这里,然后呢,这个工作部事件里面又写了一点啊,他们彼此之间是有联系的,这种写代码的模式呢,我们要适应。 好了,那这一节课呢,就讲到这里,感谢各位看官的支持,如果这个视频能帮助到你,请帮忙点赞、收藏、转发,我是老吴,关注我,下节课我们将学习新的内容。

新手学微微最难的是什么?是出现错误,不会排查。前面两个视频我们讲了语法错误和编译错误,今天我们来讲一下第三类,运行时错误, 这个错误其实是 vba 老手也有可能犯。运行时错误比较隐蔽,在编译 vba 项目时呢,不能发现,只有在运行时发生错误才会提示。比如说这个例子当中, amount 定义为长整形,但是呢,将一个字不串服着给他编译时并不会发,并不会提示错误, 但是运行时就会爆错,其实类型不匹配。 再比如说这个例子当中,如果我们将这个这一块注释掉,将 wk 定义为一个工作部变量,我们下面直接尝试输出他的 工作部的名称,那么会提示对象变量后,位置快变量没有设置, 我们将这个取消注释,那就可以正常运行,有正常输出。还有一种从语法上看没有任何错误,但是程序逻辑不对,没有输出我们想要的结果。比如说我们有一个子过程, 数量乘以二,这里调用一个自定义函数 double amount, 当我们把五十作为一个 参数传递给子函数,当棒棒的事,这时候返回的是五十乘以二及一百, 这个结果是正确的。但是如果我们不想 小心把这里二改成了四或其他任何数字,子函数反过的结果呢,就变成了两百, 这个值不是我们想要的结果,也就是呢,逻辑错误,这种错误是 vba 新手最难发现的。这类错误怎么解决和避免我们单独开一个视频讲,觉得有用的话呢?请点赞收藏关注我!

新手学 vba 最难的是什么?是出现错误不会排查?上一个视频我们讲了第一类语法错误,今天讲第二类编译错误。英文叫 compile arrow, 指的是程序运行前未必编辑器对代码进行编译时发现的错误。 第二类编译错误,一般发生的多行语距离是说一个正确的语法要两部分或多部分配合使用,但是写代码是漏掉,漏掉一部分,这个是新手最容易犯的错误之一。比如说这个例子里面,衣服与去没有对应的 end of, 当我们尝试运行时, 编辑就会提示编辑错误快,衣服没有 n 的衣服,你只需要把它取消注释,再次运行,它就可以正常运行。 再比如说我们这里有一个强制变量声明,如果我们把这个 x 的声明的语句注释掉,那么在运行时呢?他同样会提示变量没有定义 编音错误。还有其他类型。那比如说如果一个 select case 语句,我们把 and select 呃注视掉,同样在编译编译运行的时候,这个程序会提示 select case 没有 end select a 四的。对于破循环,我们如果将 next 这个语句注释掉, 运行的时候同样会提示。怎么发现这类错误呢?可以点击菜单栏 中的调试编译 vb 项目,其实这一步是 vb 过程运行前自动进行的,但是手动点击调试编译 vb 项目,会对整个项目做完整的检查。 那么如何避免这些错误呢?我的经验呢,就是在写代码的时候先把框架写好,比如说如果是一幅渔具, 那就直接把衣服和 an 的衣服先写好,然后再填充里面的内容 学会了吗?如果觉得有用的话请点赞、收藏,关注我,下一期我们一起讲一下第三类错误,运行时错误。

那么讲到这个 excel vb 呢,我还是建议大家不要去研究 excel ababy 这个东西,他是嫁接在 office 软件里的,但是他跟阿克赛斯数据库是更加搭配的, excel 如果要搭配 vba 的话,这个容易把大家带到坑里,你会付出很多额外不必要的经历,但是学到一堆没有用的东西。 那么大家 excel 如果学的差不多呢?我建议指导大家直接选 xl 数据库就可以了。那么 vv 的学习呢?也要也要通过与 xr 数据库的学习来配合,才才能发挥 vv 的作用。 vv 本身就不是给 excel 做搭配的啊。

大家好,我是老吴,欢迎观看 excel vba 入门开窍课程。上节课我们用了嘟噜谱来做的一个小小的整蛊游戏啊,我们来看下代码 一个度循环,首先是需要用户输入一个出生年月日啊,输进来之后用这个 n 接收,接收完之后呢,我们用这个 n 跟这个第一单元格进行一个对比,第一单元格呢,就是我们预先设置好的一个值 好,然后啊,如果用户输进来的纸呢跟第一匹配,那么运行这句话回答正确 好,然后在 x 的度结束这个度循环,如果回答不正确,那就会运行这个 l 式里面的话啊,我的生日都忘了,你完蛋了,重新回答好,判断结束之后 都路虎再次循环到上面,然后再次让你输入出生年月日,这样的结果就是只要你输进来的这个日期呢,不等于我们预先设置在这个第一单元格的值, 那么这个代码呢,就会无限的循环下去,也就达到了我们这个整蛊的这个效果。但是这里有个问题,就是我们是声明这个变量呢为这个代替啊, 他是个日期变量,如果我输进来的纸呢,不是一个日期格式啊,比如说我输进来一个字不串,或者我随便输一组数字,那 那么这个时候呢, n 就没有办法接受用户输进来的这个值,所以程序呢就会爆错,这个代码就中断了啊,中断了之后呢就达不到整蛊的效果,因为一中断呢,他就可以关闭这个一个 cl, 我们来测试一下。好,现在呢,我们输入一个出生年月日,然后 比如说我输入的是一个正确的这个日期格式,但是我这个是乱输的啊,肯定是回答不正确了啊,我的生日都忘了,你完蛋了,重新回答。好,再一次跳转到这个界面。好,如果我一开始的时候呢,我输入的是 啊,我不按这个格式来输入,我输入的一组数字进来啊,这个时候呢就会报错,类型不匹配啊,我们没有办法接受一个这样的这个用户数进来的值 啊,或者我输进来的是一个字母或者是字符串啊,也就是中文都没有办法进行接受 啊,都会报错啊,甚至呢,我不输入,我直接这个取消也会报错。那这样呢,肯定是达不到我们 这个整蛊的效果啊,因为我们就是要让这个消息框呢不断的弹出来,因为只要这个消息框弹出来,你对这个工作部呢就不能进行任何操作啊,这就是我们整蛊的一个效果。 ok, 那碰到这种问题该怎么办呢?那我们就要写这么一句话啊,艾瑞 米酒 啊, nice, 好,这句话是什么意思呢?这句话的意思就是当代码运行错误时,忽略继续 向下运行啊,他就是起到了这个作用。好,我们来试一下。 好, 这个时候呢,如果我输入啊,一个中文字啊,显然这个不是一个日期格式,他没有报错,他就会继续向下运行啊,那这个字呢,肯定是不等于这个第一的,所以他会运行这个 l 字名的话啊, 把我的生日都忘了,你完蛋了。重新回答啊,然后再次让你输入,如果这个时候呢,我不输入,比如说我关掉啊, 他也会继续向下运行啊,不管你输入或者不输入或者输错的格式,然后他都会统一的认为这个你回答错误了啊,然后继续运行这个 lc 里面的话, 然后再次把问题啊跑出来啊,这样呢就达到了我们无限循环的这个目的,然后来试一下看啊,比如说我什么都没说,我就直接点了这个确认啊,我们整体运行一下 啊,他就说你完蛋了,忘掉了, ok, 我继续输,随便输啊,关掉取消都没有用啊,他都会无限的这个把这个问题抛出来, 直到我回答正确为止,那他才会显示回答正确,然后啊程序就结束了, 但是此时呢,我还想再加上一个效果,也就是当用户输进来的值并不是我们想要的这个日期格式,那 我们还要给他做一个提示,而不是永远的只告诉用户啊,我的生日都忘了啊,因为用户呢可能会有两种情况啊,第一种情况是我记得你的生日啊,一九八九年啊,零二二四啊,这个生日他记得你的生日, 只是他输入的这个格式有问题,导致了这个程序错误,这样的话呢就会导致用户混淆,最好呢就是 当他输进来的这个值格式错误,我们就提示他是格式错误,而不是统一的告诉对方我的生日你都忘了,那这个问题呢,我们就留到下节课再来解决好了,这节课呢就讲到这里,感谢各位看官的支持,你的点赞是我继续创作的动力,关注我,下节课我们将学习新的内容。

大家好,我是老吴,欢迎观看 excel vba 入门开窍课程,这节课我们来讲绑定方式跟字典一样,正则表达式并不是 excel 自带的,需要引用才可以调用正则表达式的资源,他的引用方式跟字典是一样的, 如果你是看过上一章节的话呢,对这个操作应该很熟悉了。首先是进入 vba 的编辑界面,点击工具,然后点击引用,找到 maxcouttvbsgreepongolex, 表选五点五这个版本。好,我们来操作一下。 好,点击这个工具引用,然后在英文输入法状态下呢,我们输入一个按摩, 然后往下翻,第二个是微开头的啊,在这里好,上面有一个一点零的这个版。 好,我们选择这个五点五的,然后点上他,然后确定, ok, 这个时候呢,我们就可以通过前期绑定来引用正着表达式 创建正则表达是引用,跟创建字典呢是一样的啊,定,然后变量名称,这个变量名称我就取 r 依据,然后 x 六 啊,空格啊,然后再输入啊,一句啊,这个时候就出来了啊,一句一 xp, 这个呢,就是他的英文名的一个缩写啊,这个三个,然后这里三个, ok, 然后我们通过这个啊,依据点一下,就能看 到相关属性和方法啊,他的属性方法不多啊,就这么几个,其实症状表达是呢,真正复杂的并不在于代码。好,我们再回来看一下, 前期绑定就有个后期绑定,后期绑定的好处呢,就是当我们把这个代码发给别人使用的时候呢,使用者不需要进行上面这个前期绑定的操作,就可以直接使用正在表达式的相关代码, 先用前期绑定把它写好来啊,然后再把这句话呢加进去 啊,就像这样,然后在创建正在表达式引用的时候呢,就直接把它复制给一个变量 啊,一句啊,等于好,上面呢就可以删掉了。但是对 对于政策表达式来说呢,我们大部分时间还是直接使用这个后期绑定,因为他的相关属性和方法实在太少了,基本上这个代码呢都是固定的,可以来举个例子,比如我们第一节课举的这个例子,拆分行政地名,我们来看一下这个案例的代码, 好,看一下这个代码的格式,再来看一下其他的代码,这个案例呢,是拆分这个货号颜色、尺码数量的这个代码来看一下 啊,我们可以发现呢,这个代码好像这个格式都是固定的啊,其实确实是如此,这个代码是很简单的,他最精髓的地方呢,就是这个地方 只要改变了这里的正则表达式呢,就能改变匹配的一个模式。现在呢,这一串符号呢?看不懂没有关系,接下来的课程呢,我们会讲解 好了,那关于正着表达式的前期绑定和后期绑定方法呢,我们就讲到这里,感谢各位看官的支持,你的点赞是我继续创作的动力,关注我,下节课我们将学习新的内容。

大家好,我是老吴,欢迎观看 excevba 入门开窍课程,这节课是制定函数这一章节的第六节课,我们在第六节课学习取中文的函数。在 一个所有内置的函数中呢,并没有相关的这种取中文函数,所以呢,我们可以自己来做一个取中文函数。如果你是从第四章节看过来的话,我们用正则表达式来取中文是非常方便的,我们这个函数内部的代码就是使用了正则表达式。 首先我来演示一下这个函数,好,这个函数的名字就叫做取中文, 然后选择你要提取的这个单元格内容,我们选择 a 一括号,回车向下填充好,他就会把这个制服串里面呢, 只有中文才能把它提取出来,而中文之外的任何字符呢,他都会把它排除掉。这个函数呢,他其实还有另外一个函数,比如说你要取这个字符串里的第三个中文字,你就可以在第二个参数里输三, 然后回车,他就会提取这个的,因为的是这个字符串的第三个中文。这个三呢,不是说这个字符串的第三位,如果是字符串的第三位呢,就会提取这个 l, 而我要提取的是第三个汉字, 比如说我们可以在这里呢,我们取第五个汉字,看一下,一二三四五啊,他就取这个色, ok, 我们来看一下这个函数的代码,这个函数呢,他有两个参数,第一个参数就是你输入 进来了这个单元格,第二个参数为一个默认参数啊,如果你忽略的话,他就会默认为零。好了,我们来这里做一个断点,然后回车单元格速度进来的是这个内容,然后呢,第二个参数忽略了,默认为零。 好,接下来这些呢,都是正着表达式的内容,我就大致过一下,首先是一个后期绑定,然后个 logo 啊,正着表达式, 这个一道河就匹配单个的汉字,然后判断如果恩是零,那么执行正则表达是执行的内容,就是输入进来的单元格, 然后把匹配的结果返回给 sj, 然后我们在循环 sj, 每次循环的时候呢, t 啊,他不是一个累加,我这边不是加,而是一个连接符啊,就是字符串的连接,第一个匹配到是长啊, t 就是长,然后第二次 啊,是一个柱,那这个梯呢,就变成长柱,那就是这样,字不串的一个叠加,最后把这个字不串给到函数名,然后过程结束。好,他就会得到这个东西。 好,我们再来测试一下第二个参数不是零的情况,现在第二个参数是三 啊,这里就会来到 l 四这里啊,因为第二个参数指定了我要第三位的匹配结果,所以呢,我就不需要循环了啊,直接执行正则表达式啊,我们只 知道这个执行完之后呢,他是一个数组啊,这个数组呢,他是从零开始的,所以我们如果要提取他的第三位, 其实我们是取第二位,所以我取的时候是用 n 减一就是二,然后再把提取的结果呢,返回给函数名,然后函数结束 好,我们先把这个清空一下,我们再回到代码里面。好,我这个模块二呢,也写了个代码,我们来测试一下,直接点运行 他,他也达到同样的效果了。好,为什么这个简短的代码可以完成相同的效果呢?你看这边并没有政策表达,是什么都没有,其实我们是在这个沙包过程里 里面呢,调用了我们自己写的自定函数。好,我们来测试一下这个代码啊,首先是循环 a 一到 a 七单元格,然后第一个单元格呢,就是这个老吴快速一个 clo, 这个鞋子不串 好,我们现在提取了我们自己写的这个制定函数,这个函数呢,他至少需要一个参数,因为第二个参数是默认值啊,这个参数是必要的,所以我们把这个单元格的内容呢,把它传进去。 好,我们再按一下 f 八看一下。哎,他就跳到这里来了,即便你没有写在同一个模块里面呢,他都会跳转到这个函数过程里来啊,然后他就会执行这个函数过程。 好,然后再把这个结果呢返回给这个函数 好。函数结束完之后怎么办?好,他又跳转回来了啊,他就把这个结果呢返回给当前循环的单元格,偏移一列啊,就是 这个地方,我们先把它清空,然后再来演示一下,好,跳过来,然后直行 好,函数过程结束之后,又跳回到这个纱布里面,你看这地方就出来了。接下来我们就是不断的循环啊,可以点一下 啊,他就搞定了。当然这个函数呢,他还有一个参数,这个参数在过程里面可不可以实现?也可以实现,比如说我要在第一个单元格里面提取第一个字,第二个单元格提取第二个汉字,第三个单元格提取第三个汉字啊,以此类推,当 他最后面只有四个汉字。好,我们稍微在后面多加一点汉字,这样呢不会报错,因为这是一二三四五六七啊,他到这个地方呢,还提取第七个汉字。好,这个怎么实现呢?我们也可以到这个沙包过程里面。 好,在这里边呢,做一个累加 n 等于 n 加一,然后我们把这个 n 呢,把它写到这个函数的第二个参数里面。 好,也就是第一次循环,我就提取这个单元格的第一个字。好,第二次循环呢,就提取第二个字,我们来测试一下啊,这个时候报错了,那这个报错是什么情况呢?是因为我们现在这个,嗯呢,还没有做一个声明啊,我们可以把它声明一下。嗯,他是一个整形, 好,再来测试一下。 ok, 这个时候呢就可以传进去了,好,传到这里来呢,现在就不是默认值了啊,他就会跳到 s 这里 啊,跳过来啊,去第一个老,对,然后继续 啊取第二个啊,鱼啊,介鱼,这就是第二个字。好,接下来呢就是以此类推,我就整体执行一下。 好,来检查一下啊,这是第三个字,然后第四个字啊,第五个字,第六个字 啊,顿,是第七个字,一二三四五六七,就这个顿, 好,可能第一次接触这种不是写在同一个过程里面啊,可能会有一点晕啊,就是执行的时候呢,不是在这个纱布里面执行啊,而是 到这里时候呢,又跳到这里来了啊,跳到模块一来了,执行完之后呢,又跳回来,这样可能啊,一时间呢有点懵。其实这个可以这样理解, 我们常说某个语言呢,是一种面相对象的编程语言,这个面相对象是什么意思呢?我来举个例子啊,啊,这是一个佛跳墙, 你要吃佛跳墙呢,有两种办法,第一种办法就是你自己做啊,你要把这个主料调料都准备好,然后呢烹饪过程啊,一道一道的看完,慢慢去执行,最后做成佛跳墙,你自己吃, ok, 这是没有问题的。但是你还有一种办法, 就是你直接到餐馆里面啊,对着服务员说,给我拿个佛跳墙啊,就 ok 了。这个就好比我们编程的时候,这个面相对象和面相过程 啊,上面这一种就是面向过程啊,因为每个过程呢你都要去经历,但是下面这一个就是面向对象,我不需要知道这个后厨,这个厨师他到底是怎么做出佛跳墙的,我只要掏钱就可以了啊,就好像我们在这个 过程里面,这个曲中文这个函数,我不需要知道这个曲中文函数里面怎么运行,我只需要把它需要的参数输进去,就好像你对着一个厨师说啊,给我来个佛跳墙,你把钱给他就可以了,函数他不需要钱, 他需要参数啊,你把他要的参数输进去,他就能返回给你要的这个结果。这种思路呢就是面向对象,其实不管是面向对象还是面向过程,最终的底层还是面向过程, 因为这个函数他内部的这个过程呢,说到底还是一个面向过程。好了,啰嗦了这么多呢,只是让大家呢更好的理解这段代码, ok, 那这一节课呢,就讲到这里,感谢各位看官的支持,你的点赞是我继续创作的动力,关注我,下节课我们将学习新的内容。