粉丝5420获赞1.5万




年终抽奖来了,三等奖绝对不能抽,老大随便多抽几个三等奖下一把,二等奖留给小贝,最后大奖给操爷爷,妥妥的都是关系户,你还相信啥?电子抽奖内部摇号吗?代码非常简单,想学的截图吧。


你是不是还在用函数公式给自己的孩子出加减乘除口算题?来看一下我的课代表点读机哪里不会点哪里? banana pick sheep, golden jaguar, 长颈鹿西瓜 horse。 有意思吧?这个东西实现起来很简单,只要写一行代码,两个单词就可以了。我们点击右键查看代码跳出来这里呢,这两个开头和结尾两行呢,会自动生成,你只要写一下他给的点 speak 就可以了。你学会了吗?快回去试一下吧!


咱们国家有一些压箱底的核心技术,还有独步天下的祖传秘方,竟然因为一些人的无知和轻率,白白送给了外国人。从卫星导弹的绝密参数,到能赚大钱的维生素配方,再到传承千年的宣纸工艺, 一桩桩一件件,每一次泄密都让国家蒙受难以估量的经济损失。先从最让人揪心的卫星泄密事件说起,一九八一年九月, 这是一个注定要被载入中国航天史册的日子,咱们国家首次一箭三星发射成功,三颗人造卫星直冲云霄, 这可是大国重器。要知道一箭三星的技术门槛有多高,他意味着咱们已经掌握了多弹头分导重返大气层技术,这可是洲际导弹的核心技术。消息一出,各国驻华五官急的向热锅上的蚂蚁四处打探消息,恨不能立即找到咱们的发射场,搞到其中的机密。 面对这些虎视眈眈的眼睛,咱们的军工部门守口如屏,就连媒体的报道都惜字如金,生怕泄露半点机密。 可谁能想到,就在卫星发射后的第三天,北京一家电台突然播出了一篇叫太空奥秘夺桂冠的广播稿。更离谱的是,第二天一家报纸直接刊登了我国第九颗卫星的深度报道,里面不仅有三颗卫星的清晰图样,还有车间组装的高清照片, 甚至连卫星的运行轨迹、无线电遥测频率都写的清清楚楚。这些内容已经公布,国外情报机构简直乐疯了,捧着报纸和广播稿如获至宝,连夜分析研究。咱们的军工部门知道以后,直接惊出了一身冷汗,彻查之下才发现这一切竟然是一个工程师的神操作。 这位老兄为了抢新闻博眼球,竟然在没请示没爆批的情况之下,提前写好了稿件,卫星一发射就传给了媒体, 还谎称已经通过审核,最终这位工程师受到了严厉的惩罚,但是泄密造成的损失再也无法挽回。如果说卫星泄密是因为个人的鲁莽,那维生素 c 技术泄密简直就是教科书级别的拱手送人。 咱们国家研发的两不发酵法生产维生素 c 的 技术,那可是轰动世界的重大发明,这项技术不仅能大大降低维生素 c 的 生产成本,还能提高产量,当时直接打破了欧美国家的垄断,市场前景一片光明。 瑞士和美国的巨头企业闻风而动,带着满满的诚意跑来我国谈合作,甚至不惜砸重金想要买下专利。就在咱们准备坐下来好好谈价格的时候,戏剧性的一幕发生了。一周之后,这两个国家的代表竟然拍拍屁股回国了,再也不提购买专利。 当时咱们的科研人员一头雾水,后来才知道,原来国内某学报竟然把这项技术的整个研制过程、精准剂量全都刊登了出来, 白纸黑字写的清清楚楚,只要是懂化学的人,照着论文就能够轻松复制。就这样,这项能够让我国能够赚的盆满钵满的核心技术,外国人一分钱没花就把咱们的心血成果拿走了,想想都觉得憋屈。接下来要说的是蚕药技术泄密, 更是把学术交流变成了送机密大会。咱们国家在做蚕流行病防止方面有一套独特的秘方, 那可是无数科研人员呕心沥血的成果,能帮助蚕农减少巨大的损失。有一次咱们受邀参加国际蚕业学术大会,会上咱们的代表本着学术交流的初衷,竟然把治疗蚕作流行病的配方、施药方法、病员研究的这些核心机密一股脑都讲了出来。 台下的日本人听得眼睛都亮了,全程点头哈腰,对咱们的代表极尽殷勤,那热情的态度让咱们的代表感到受宠若惊。 谁能想到,日本人热情的背后藏着的是一颗贪婪的心。要知道,日本专门设有广播监听室,二十四小时不间断监听咱们国家的电台节目,一字一句都记录存档。这次学术会议,他们更是把咱们的核心技术听得明明白白, 回去之后立马投入研究,很快就掌握了这项技术。说到这里,不得不提到咱们的国宝宣纸。宣纸,纸中之王。尤其是安徽泾县的宣纸, 那可是传承了上千年的工艺,用它写字画画千年不朽,是咱们中华文化的瑰宝。日本人对宣纸的工艺早已垂涎三尺,曾经多次派人跑到泾县想要参观学习,都被厂房言辞拒绝。泾县宣纸厂的人守住了底线,可是却有人把后门给打开了。 第二年,又有一批日本人来到我国,这次他们没有去泸县,而是直奔浙江的一家造纸厂。让人无语的是,这家造纸厂竟然是泸县宣纸厂扶持起来的。面对日本人的到访,这家宣纸的负责人不仅热情接待, 还知无不言,言无不尽。日本人问什么,他们就答什么。就连蒸煮原材料的碱水浓度这种绝密细节,都毫无保留的说了出来。临走的时候,还大方赠送了檀树皮、长稻草浆和杨桃藤这些制作宣纸的核心原料。 没过多久,日本人就公开宣称,在宣纸领域,安徽泾县排第一,他们排第二,浙江和台湾分别排第三、第四。听到这些,谁能不气愤? 咱们传承千年的工艺,就这样被轻易窃取,老祖宗留下来的宝贝,成了别人的摇钱树。和宣纸有着相似命运的,还有咱们的国粹,景泰蓝。景泰蓝工艺复杂,色彩绚丽,是咱们国家传统的出口创汇大户, 在国际市场上,那可是抢手货。有一次,日本客商组团来景泰蓝厂参观。咱们的厂家为了显示友好, 竟然允许他们拿着摄像机,把整个制作工艺流程拍了个遍。从制胎、掐丝、点蓝,到烧蓝、磨光、镀金,每一个步骤都拍的详详细细。 厂家还以为这是促进中外交流。他们没想到,仅仅过了两年,咱们的景泰蓝就遭到了灭顶之灾。日本生产的景泰蓝产品,凭借着从我们这里偷学来的工艺,再加上低廉的价格,迅速涌入国际市场,直接把咱们的产品挤得没了立足之地。 咱们出口创汇的王牌,一夜之间直线贬值,许多厂家因此亏损,甚至倒闭。说完了传统工艺,再说说农业领域的泄密事件。

上一讲呢,我们给大家介绍了红和 vba 的 一些基础概念, 然后从这一章开始,我就开始给大家分享一些呃 vba 的 代码,正式进入代码的一个基础教学。然后呢,在进入代码的教学之前呢,我们先了解一下我们的啊 vbe v b e, 那 也就是 vivo bicycle editor, 就是 我们的呃, v b a 的 编辑编辑区,我们怎么打开呢?我们任意打开一份 excel, 然后在左下角我们右键查看代码,这是一种方式,或者用快捷键 alt 加 f。 十一,我们进到我们的啊编辑区,编辑区呢,它分为几个板块,首先左上角 左上角这个这个板块呢,他是我们的工程管理啊区,他的名完整名称在这,他叫工程资源管理器, 他是什么意思呢?就是我们的呃,一个个 excel 文件和插件他都会显示在这,比如说我的第一个,他的文件名后缀是 excel 文件,也就是我们之前讲的红文件,就是加载项, 这是我之前的呃呃,在事务所工作的时候,他们的那个审计插件啊,然后还有一个,这个是我们自己开发的插件。然后呢这一个呢,就是我们打开的当前打开的这个 excel 文件,大家看我们的名字叫了解 vbe, 主键就是这个文件, 然后呢这个呢,这个就是我们之前讲的 person 的 文件,就是我们个人红的工作簿。然后这一块就是我们的工程资源管理器,然后左下角这一块区域呢,左下角这块区域就是我们的属性区域, 比如说我们现在插入一个模块啊,大家可以看到这个模块它的属性常用的呢就是我们修改它的模块的名称,我的第一个模块, 这个模块呢,我们平时会写代码,会在这个模块里写啊,然后还有些什么呢?比如我们插入一个啊用户窗体,他这也会显示一些我们的用户窗体的啊,一些属性,像他的背景色呀 和他的前景色啊什么的,你的按钮的颜色,到时候你这画一个按钮,然后他这又会变成按钮的一些属性, 然后我们写代码啊,平时是在这个里面去写,就是你新建一个 excel 文件,然后就插入模块去写, 就是比如说你想去创建一个啊存货出租库系统,那我们就在啊这个文件里去写。如果说你想去写那种呃跨工作簿使用的 呃那个代码的功能,比如说我想给所有的数字啊,设置成我想要的格式,这种比较通用的,因为你在一个工作簿里用了之后,你会在另一个工作簿里去用,那我们就会在这个 person 里面去写那个代码,把它放在 person 里面, 因为你在只在这呃一个 excel, 你 下面去写代码的话,它是不能跨工作簿使用的,它只能在当前的一个工作簿去使用。好,接下来我们去介绍右边,右边就是我们真正写代码的地方了,这个就是这一块区域,就是我们写代码的地方, 写代码的地方我们一般是有 subble hello 啊,这就是我们写代码的地方,这就是基础的一个框架。然后下面呢立即窗口呢,就是我们啊输出,输出一些,我们调试的时候输出一些文字的 debug print, 哎,我们把它打印在啊,它就会在这去输出出来啊,这个函数大家也可以。呃,记着啊,我们后面也单独会讲,它就是我们经常调试打印,就你想把什么结果输出来,它就会在立即窗口里去输出, 然后下面呢下面这个窗口呢?呃,就是本地窗口,本地窗口它会显示一些啊,你的那个啊对象啊,或者说是啊变量,它的值和类型,这也对调试来说也是非常有用的,主要就是分为这几个板块,然后, 然后呢这个 v b 窗口,大家可以在这个地方调一下自己的啊它的格式,这选项在工具选项里,这儿 啊自动语法监测把取消,然后要求变量呢啊,我建议的话是如果你学我一边想学的比较专业的话,你就把勾上,因为这样你从初学开始你就去规范你的代码,但是你如果说你就是想学来我平时用啊 够用就行,那我觉得可以不用去勾代码,我们没必要特别的规范,我们够用就行,对吧?我平时因为我也不是很专业的出身啊,所以我平时也不会去勾,这个我觉得我能用到我实际工作中,够用就行啊主要,然后这个通用呢就是 编辑器格式,你这就可以调一些你的字体啊,啊,你的大小啊,你调成你自己喜欢的就行, 呃,然后通用,这儿大家选这个,遇到啊未处理错误时中断选这个啊,好,其他地方都默认就 ok, 然后确认好,这就是我们的 vba 一 的一个基础介绍。

大家好,我是老吴,欢迎观看 excel vba 入门开窍课程,这节课是试卷过程的第十五节课,我们在这一节课学习动态筛选。首先我们来看下效果,这里有个输入框, 我在输入框里面可以输入我要筛选的内容,比如说我要找这个姓吴的啊,我一输入他就会出来,如果我再继续输入呢啊,他就会进一步来做筛选 啊,我删除的时候他又会恢复,这个相比我们工作表的这个劝举时间呢,好像还要更灵活一些。我们在劝举时间里面呢,我们是要完成编辑之后他才会触发,而这个呢,我们每一次输入一个制服的时候呢,他都会触发这个效果, 我们来看这个代码好,这代码呢非常简单,但是呢也有一些我们看不懂的地方啊,比如说这是什么东西? ok, 我们重新来 操作一下, 其实这个框呢,它并不是一个单元格,而是我们插入的一个空间,这个空间是怎么来的呢?我们现在 这个点来点去呢,好像选不中这个空间啊,我们可以来到这个开发工具这里,然后点击这个设计模式啊,这个时候呢,我们再点击这空间就可以选择他了啊,可以移动啊,或者把它删掉也可以。 好,我们再重新插入一个。好,我们来到这个开发工具,然后点击插入这里有一个文本框啊,我们选择他。好,这个时候呢,我们可以在另一个地方进行插入,在这里画一下,也可以在这个外面画下,也可以, 我们就在这里画一下啊,选中他一下,然后画一个框出来。 ok, 首先呢我们可以对这个框进行一下 设置,光标先放到这个空间的这个区域里面,然后点击鼠标右键啊,点击属性。 好,我们可以点击这个掰开,开了可以选择一个颜色啊,我们在这边呢来挑一个,比如说是黄色的这个底色啊,他就会变成黄色。我们还可以对输进来的字体呢进行一些设置,比如说把这个输入进来的字体呢,我不需要黑色啊, 录进来,比如说是红色,我们选择红色这些只是对这个空间的外观来进行设置。好,我们现在退出这个设计模式 啊,我现在输入呢,哎,他是可以输入的,但是这个时候呢,这个空间没有写代码啊,所以现在你输入任何东西呢,他是没有任何反应的啊,我们继续来到这个设计模式啊,然后我们双击这个空, ok, 这个时候呢他就进入了代码的编辑模式啊,这个其实就是控件的一个事件,我们在本章的第一节课就介绍一个室友呢,不但有工作表事件,工作部事件,程序级别的事件,控件,包括窗体呢,都是知识事件的啊,我们来看一下 啊,平时呢我们是选择这个啊,这个工作表的一个选择时间,或者工作表的这个确认时间啊,现在呢我们就可以选择这个空间的这些时间, 然后他也有很多时间啊,我们就用这个圈句时间,好,圈句时间我们就可以写上这个筛选啊,这个筛选呢,我们在本套课程的第一章节就学过,如果对筛选不了解呢,可以翻看本合集视频的第一章节来进行学习啊,筛选首先是写上单元格区域啊,认取 啊,这个区域我们可以写某一个单元格,比如说我们可以写 a 一,好,然后点 啊,这个时候就输入自动筛选,奥特菲特啊,首先这个认准呢,我们为什么是写 a 一啊?并不是说在 a 一单元格来进行筛选, 而是我们筛选的区域呢,可以这样理解,以 a 一为基准,单元格啊,全选了这块区域,比如说我们拿到这个 a 单元格,然后 ctrl 加 a 啊,就是一整个区域 啊,这个自动筛选呢,他对这个单元格呢并不敏感啊,你写 b 一啊, c 一或者 a 十, b 十 c 十都没有关系,只要这个单元格是在这个表格区里面都可以啊,所以我 我们就简单一点,写 a 就可以了,我们来敲一下空格啊,这个时候输入他的第一个参数啊,第一个参数就是你要在这个区里面筛选第几列啊?筛选这个表格的第一列,我们就输入一啊,第二个呢,就是筛选的条件啊,就是你要筛选什么内容,那这 这个内容呢,就是我们输入在这个空间里的文字,我们可以通过这个空间的名字,然后点 啊,他获取他的文本。这个时候呢,我们来测试一下啊,首先要退出这个设计模式啊,比如说我现在输入 啊无,我发现呢,他没有出来任何内容,我再输全一点,无依平啊,这个时候呢就出来这个内容了啊,显然我们 现在所筛选的这些内容呢,是一个精确的筛选,而不是一个包含筛选啊,所以你必须把这个名字输全了啊,一定要完全匹配上了,他才会显示出来。那怎么才能做这个动态的筛选呢?就是说以包含的形式啊,就像我们在这个文本筛选里面写这个包含啊,包含五 啊,就会出来所有包含五的这个内容。其实我们可以在这个输入框里面呢,输入这个通配符啊,这个新号啊,这个时候呢他就会出来了,但是这样写呢会比较麻烦,我们可以把这个通配符呢,把它写到代码里面去, 我们来到这个代码里面,我们可以在前面加上这个新号,然后跟这个输入进来的文本进行相连啊,后面是一样的操作。 ok, 好,我们再来试一下 啊,我现在删除的情况下呢,他就会显示所有的这个内容啊,虽然现在好像是一个筛选模式,但其实我们可以看下这个序号啊,他是没有进行筛选的, 全部都显示出来了,是一个全选的状态。好,虽然我们现在什么都没输,但是我们现在相当于输入了这个通配服啊,这个新号。好,我现在输入这个无啊就出来了,好,我在进一步输入, 他就会模糊的找到这个最匹配的这个人啊,你可以根据当前学习的这个知识呢,比如说在这个 b 列或者 c 列来做一个动态筛选。好了,那这一节课呢,就讲到这里,感谢各位看官的支持,你的点赞是我继续创作的动力,关注我,下节课我们将学习新的内容。

大家好,这期我们来讲一下下拉菜单如何实现多选,就像这样, 也许你见过使用表达空间的方式制作的下拉多选,但是今天这个方法比使用空间要简单的多,并且代码几乎不需要修改就可以适应任何情况。 众所周知,当一个单元格存在数据验证时,如果我们输入一个下拉列表中不存在的值,他会提示你不匹配,无法输入,但是我们可以使用 vba 来操作这个单元格,这样就会绕过数据验证的限制,这一点也是我们实现下拉多选的关键。 另外一个我们需要用到工作表的称职试件,我们打开 vba 编辑器,双击 shit 一,然后在上方通用这里选, 选择 worksheet, 在右边选择 change, 然后下边这个不需要 change 事件,意思就是当工作表中单元格内容发生修改的时候,就会触发这个事件。执行里边的代码我们随便写一句, 然后我修改单元格的内容的时候就会触发,包括下拉选择同样也会触发。 接下来讲解一下原理。首先当我们选择下拉的时候,原单元格中的内容我们称为旧址, 要选择的内容我们称为新值,首先要判断旧值里边包不包含新值,如果不包含新值,我们就把旧值和新值连接起来,然后用 v b a 输出到这个单元格,比如说现在旧值 是小红,我们要选择小明,小红里边不包含小明,把他们连接起来,就像这样,然后当我们在选择的时候,现在就职是小红小明,假如我们在选择小红,新职是小红,旧职里边已经包含新职了,所以我们就把旧职中的 这个心值去掉再输出,就像这样,这样就做到了下拉多选以及取消多选。 那么问题来了,新值和旧值应该如何确定呢?比如说现在我们下拉选择小红,小红应该是新值, 然后原单元格的内容是旧址,我们选择小红,现在我们可以用撤销 ctrl 加 z, 撤销之后他是小明,所以我们利用这个方法。当我们选择内容之后,现在单元 格的值是新值,然后我们撤销之后,单元格的值是旧值,所以我们可以写一下代码,同样在 change 事件里边先定义变量, 然后因为我们在操作单元格的过程中,单元格的内容修改了好多次,所以这个趁着事件会一直触发。为了避免这个情况,我们可以先关掉事件,等程序执行完以后,我们再打开事件, 这个就是关闭事件,然后最后我们再打开事件, 这样就避免了这个程序一直重复执行。我们修改单元格内容之后,比如说是小红,现在新值,他就等于小红,然后 我们再撤销,撤销在 v b a 里边是按度这个方法,撤销之后得到的值是旧值, 我们可以把这两个值打印出来看一下。 好,现在是小红,我们选择一下选择小王, 看到这现在还是小红,但是我们打印出来了小王和小红,说明新职是小王,旧职是小红,但是这样选择的话,单元格的内容不会变,所以我们最后需要再把单元格的值给他复制,复制到新, 我们再来试一下,现在小红他应该是旧址,我们选择小明, 这样他已经变过来是小明了,然后我们打印出来的结果,小明和小红,新指是小明,旧指是小红。明白这个问题之后呢,代码基本就出来了,我们来看一下代码,因为代码特别的固定,几乎就不需要修改, 所以我们可以直接调用。好,我来讲一下这个代码。首先是定义了四个变量, 第一个变量是数据验证区域,因为我们要处理的单元格是这种数据验证的,所以我们要先判断工作表里边有没有数据验证。然后第二个变量是就 右直心直分割符,因为这个分割符我们可可能会经常修改,可能需要逗号或者是分号,或者是回车什么的,这里可以自己修改。然后下面这一句 是判断我们选择的区域是不是有一个单元格,如果超过一个单元格直接退出。像下拉多选,每次肯定都是一个单元格,如果超过一个单元格直接退出,然后再往下边。这个是把数据验证的单元格复制给变量 上边加了一个忽略错误,因为当工作表中如果没有数据验证的话,它返回的就是一个空值,这样就会出错,所以我们直接忽略错误,然后再判断这个单元格是不是 nasing, 就直接退出就行了。包括下面 这一段也是 intersect, 它是交集,就是我们选择的单元格跟数据验证的单元格是否有交集,如果有交集说明它是 同一个单元格,如果没有交集也就直接退出程序,所以这些都是做了一个判断,然后再往下边,这就和刚才一样,是判断新值和旧值, 当我们新职和旧职都得到以后,如果他们两个都不为空,我们就判断旧职里边是否包含新职。 我们使用的是 instrin 这个函数,之前的视频我也提到过这个函数在字符串两边加上符号,就可以做到唯一值的判断,然后我们判断他是否包含,如果大于零就是 包含,包含的时候我们就要把它去掉再输出。我们先看不包含不包含的情况,我们直接把旧值和新值用分割符连接起来,然后再输出就可以了。当包含的时候, 我们需要把新纸从旧纸里边替换掉,替换的时候分三个情况, 我们来演示一下,我们现在看小王的位置,小王在旧字符串里边出现的位置只有三个情况,第一个情况是小王在开头,就像这样,小王在开头,第二个情况 就像小李这样,他是在中间。第三个情况就是在结尾,然后我们 用 instrument r e v 加上 r e v, 它的意思判断其实位置是从最右边开始判断,判断它的第一次出现的位置。 然后我们就是比较一下这两个字步串的长短,如果新职在就职的 最右边,也就是在后方的话,我们只要把心值加上这个逗号,把它替换为空,这样就做到了去掉,去掉这个内容, 也就是下边这一句,心值加上分个符,但是如果他的位置是在开头或者是中间,我们要替换的位置就是心值加上分个符,心值加上 分个符,把这一部分替换掉就可以了,所以我们用的是这句代码,然后这里这个长度的判断,大家可以自行模拟一个结果,看一眼就可以了, 因为这些东西都是固定的,后边这些内容都是固定的,都不用需要修改,只需要修改的就是分割符,比如说你需要用回车作为分割符的话,我们可以直接改成这个,他是回车符, 然后我们清空再演示一下, 这个时候他就用回车作为分割了,所以我们在使用的时候 只需要修改这里,其他的都不需要变。以上就是视频的全部内容,如果觉得有用,不要忘了点赞、收藏加关注,我们下期再见!