粉丝2216获赞1.0万


大家好,我是老吴,欢迎观看 excel vba 入门开窍课程。这节课我们来讲数组的声明。前几节课里面我们并没有声明数组,我们直接把单元格对象负值给变量,让他生成一个数组, 现在 ar 一就变成了个数组。 可以看一下。好,这是一种生成方法,可以理解为这是一种被动的生成方法。我先没有数组,然后我们把这个单元格区域一下灌入到这个变量里面,让他变成了一个数组。 那今天我们学的这个声明呢,就是一个主动的。好,我们来看一下这个定目啊,一样的,跟声明变量一样定目呢 后 ar 括号四,这个呢就是声明的一个一位数字。好,我们来看一下啊,虽然他已经变成了一个数字,但是他里面没有值,是空值。而且如果你这么声明的话呢,是从零开始,零一二三四总共有五个元素。 ok, 我们再来看看这一句话 啊,蒂姆, br 三,然后 s 樱桃卷,这什么意思呢? 我们在声明数组的时候,还可以同时声明他的数据类型啊,来测试一下 他的数据类型呢,是整形,但是这种情况我们用的比较少,我们直接这么声明就可以了,让他变成一个变体变量啊,现在就是变体变量,如果我不想以零开始怎么办呢? 我想从一开始声明三个怎么办?可以这么写啊,啊,一兔三啊,来测试一下。 好,现在就变成了一个三个元素的这个一位数组。我们再来看一下声明二位数组,其实就是在这个基础上呢,再打上一个逗号,然后再写,比如说一兔六, 前面这个一图三就代表这个数组的一维,后面这个一图六呢,就代表他的二维 一图三,一到三啊,然后这每一个里面呢,还有二维一到六。我们为什么要这样声明数组呢?我们不是可以直接用这个单元个对象直接复制给一个变量,让他形成一个数组,那这样不是很方便吗?而且我还不需要计算 他的维度。 ok, 我们来举个例子来看一下是什么情况,我们才需要主动的去开辟一个数组。我们来 看这个例子啊,这有张名单,姓名、性别和工时,如果我现在想提取这个表里面的女职员的这个工时啊,把它形成一个新的表格啊,就像这样,我们把女职员吗把它挑出来啊, 依次的把它复制到旁边来。好,这个呢,不用数组也可以做啊,但是我们现在尝试用数组来做啊,首先我还是 用这个论诀一呢,以他为基准,扩展他的区域,然后再 复制给个变量,还可以再次声明一下,我们就这么声明一下就可以了。我们首先来看这个数字, 好,现在呢就形成了一个一维是十六的啊,一到十六,然后二维里面呢有三个,每个里面呢都有三个。好,我现在就来做一个判断 啊,如果我要判断每一个里面二豆二三豆二,这个值是女性的话,我就把它提取出来,所以首先呢,我们想到的是循环 啊, f i。 从什么地方开始呢?从二开始,为什么?因为第一个维度里面呢,他是个表头,我们不需要,所以我们从第二个开始。二兔 到什么地方呢?十六, 好,然后我在里面做一个判断, e f 啊, ar i 豆二啊,等于啊女这个 arr i 豆二,这个大家应该理解了,我第一次循环二啊,二豆二,就是这个第二次循环三豆二啊,就是每一次呢 都是找里面的这个性别好判断一下,如果是女的话,我就把它储存起来。怎么储存呢啊?这个时候我们就需要用到这个主动的来开辟数据啊, 说必啊,第一个维度可能是女员工的人数,但是这个人数呢,现在我不知道啊,所以我就声明的大一点,这里总共就十几个人,所以我声明大一点啊,一维我就声明到二十。 好,第二维应该装什么呢?第二维我们就知道了,我们就装这三个就可以了啊,所以他的第二维是一铺三。 ok, 好了,我们再来测试一下。

大家好,我是老吴,欢迎观看 excev b a 入门开窍课程,这节课是正则表达式的第十七节课,我们在这节课学习后向引用。我们先来看下这个案例, 这个案例中我要找到祖籍和现居地一致的单元格,然后把这个单元格标成红色,像这种祖籍台湾,现居台湾的话就标红色,像这种祖籍浙江,现居北京,就把它排除掉。首先来看下效果, ok, 就找到了这个效果是如何实现的,我们先不用这个案例来讲解,我们先用这个测试数据来演示一下,我们先把它放到测试工具里面,我现在要找的就是这种,前面这个型号呢,和后面这个型号是一致的, 我就把它匹配上,像这种啊,前面和后面不一致,我就把它排除掉。首先我们来描述一下这个,第一个是字母,我们就用这个 a 到 z 啊,拿大 a 到大 z, 我们写的全一点, 然后是四个数字,啊,这些都是四个数字,所以我就用杠的,然后限制一个次数,四次测试一下。 ok 啊,这些型号呢都被匹配上了,现在我要匹配前后呢相同的,这个怎么办呢?好像我们之前并没有学过这样的知识,如果我们只是把这个复制一下,就表示前面一个型号,后面一个型号,然后 中间这些东西呢,我们就用点啊,这个点呢几乎代表了任何的字符,然后加号一次或多次,然后再来测试一下。好,这个时候呢,他整条都匹配上了, 好,我们这样匹配呢,前面和后面这个只是说他的格式是一样的,就是一个字母带着四个数字,但是并没有告诉正则,这两个需要相等啊,这种应该怎么写 啊?今天我们就来学这个,首先我们需要用到分组,我们先把这个前面这个先用括号把它括起来, 好,后面这个东西呢,我们就把它删掉,这些不要,然后我们输入一个杠一啊,再来测试一下, ok, 我们发现 前后相等的就匹配上了,而前后不相等的就没有匹配上这个杠一的意思呢?这个不是代表一本身,而是他是有含义的,这个一代表着前面这个括号啊,就是说 前面这个括号的内容在这个地方出现了重复。比如说拿第一个举例,前面这个括号里的呢,就是一个字母带了四个数字,然后点 加一次或多次,几乎代表了任何的支付串,就代表了这四个中文。然后在这个地方出现了前面这个分组的重复内容,也就是这个啊,然后整体就能匹配上啊,这个一代表的是 第一个括号里的内容,如果这个地方写二是什么意思呢?就是说第二个括号的内容,比如说在这里也有个括号,因为有的时候呢,我们前面需要一个分组匹配, 然后后面呢才是这个后向引用,如果是这种情况呢,你需要后向引用第二括号的那种,你就写一个二就可以了。好了,我们现在把案例中的字符串复制一下, 放到测试工具里面。好,我们第一步就是找祖籍后面的地名,然后后向引用,在后面的制服串里面找相同的制服。好,首先我们把 这个祖籍拿下来。好,然后括号里面呢,我们就用一个一道盒 一道和,因为这个地名呢,有两个字的,三个字的啊,如果碰到内蒙古自治区啊,这种文字就更多了,所以我们就一次或多次啊,来测试一下。 ok, 这个时候呢就匹配上了 啊,虽然是整体匹配上了,但是我现在分组里面呢,只会有定名。 ok, 然后我们在描述中间这些东西,比如说这些逗号啊,或者说空格啊,这些现居啊,什么什么啊,很多不确定的因素,我们都 都用这个点,然后一次或多次啊,或者我们换成这个新号,零次或多次,就是这个线距地呢,就算是跟他贴在一起的啊,都可以识别。如果我们写加号呢,就是说中间一定至少都要有一个啊空格,或者说有一个其他的字符。 好,接着呢我们就可以输入杠一,然后就代表前面祖籍两个字,然后后面跟着是地名,地名 中间可能会有字符,可能会没有字符,然后在这个位置出现了前面这个地名重复的字符 来看一下。 ok, 我们就找到了祖籍啊,这个祖籍江西县居地也是江西啊,祖籍黑龙江,县居也是黑龙江 啊,后面这两个呢都不是排除掉了。 ok, 那正则表达式呢,我们就已经搞定了,我们把这个复制一下,我们来看下代码 啊,这个代码跟我们刚刚写的这个正折表达是呢不一样,所以说每次写正折的时候呢,都有不同的思路啊,这是我之前写了个正折,我们现在用刚刚写好的正折呢,把它替换一下,用这种呢也可以。 ok, 我们来运行一下啊,这代码呢,其实就很简单了,好,循环, a 一到 a 七单元格就是这些 好,每次循环的时候呢,进行判断, past 好,如果能匹配上,就把当前循环的单元格标成红色 啊,第一个排除啊,第二个啊,我先把这里先还原一下颜色, ok, 就标红了,然后循环第三个排除啊,第四个标红 好,再循环啊,第五个标红好,接下来两个都排除, ok, 大码结束。 这节课呢,我们先引路后向引用的一个方法啊,并且结合这个案例呢,来演示一下效果。下节课呢,我们再用后向引用的方法来做一个案例。 好了,那这一节课呢,就讲到这里,感谢各位看官的支持,你的点赞是我继续创作的动力,关注我,下节课我们将学习新的内容。