我们直接来看 vba 公式的核心,构成一个完整的公式,就像一个精心编排的剧本,由若干个语句按照特定规则组合而成。 每个语句都承担着计算任务,并最终生成我们能在报表上看到的结果。这些语句主要分为两大类,一类是赋值语句,它直接定义了我们要在报表上显示的技术指标。 另一类是中间语句,它们默默工作,辅助计算,但不直接体现在最终的图标上。我们先聚焦于赋值语句,这是构建任何技术指标的基础, 它的核心作用就是给一个计算结果命名,让它在图标上以一条线的形式出现, 语法非常直观。名称,冒号,表达式分号,这里的名称就是这条线的代号,比如 s t。 而表达式则是计算这条线的具体方法,比如 myclose 五,也就是收盘价的五日均线。 记住这个冒号,它就像一个等号,告诉系统,左边的名字代表右边的计算。一旦定义了 s、 t 之后,就可以用它来简化更复杂的计算,比如 m a, s、 t 五,意思就是对这条五日均线再做一次五日平均,是不是很高效。 这就是赋值语句的力量所在。现在我们来看看中间语句,如果说赋值语句是舞台上的主角,那么中间语句就是幕后的功臣,他们同样进行计算,但结果不会直接画在图标上。 关键区别在于,它使用的是冒号加等号,而不是单纯的冒号。比如 a 等于 x 加 y, 这个 a 的 值可能被后面的负值语句用来计算,但它本身不会变成一条独立的线。 为什么要用中间语句呢?想象一下,如果一个复杂的公式需要重复计算某个部分,每次都写一遍岂不是很麻烦?用中间语句把它定义出来,既简洁又高效, 而且你可以定义无数个这样的中间变量。它们就像乐高积木里的小零件,灵活组合让复杂的逻辑变得清晰易懂。有了语句,还需要运算符来连接它们,就像音乐中的音符和节奏。 vba 公式主要涉及两类,运算符,算数运算符和逻计算符。加减乘除大家再熟悉不过,就是基本的数学运算。 而逻辑运算符则用于条件判断,比如大于、小于等于这些关系运算,以及 a、 n、 d 和 o、 o、 r 这两个逻辑连接词。特别要注意的是,逻辑运算的结果是非黑即白的,条件成立返回一,不成立返回零。 比如四大于三,结果就是一,而四大于三, a、 n、 d 十二小于等于四,两个条件都满足,结果也是一。这里有个小陷阱,就是计算符的优先级。就像数学运算一样,乘除、先余、加减。 为了避免歧义,尤其是在表达式复杂时,最好养成用括号的习惯,明确你想要的计算顺序。我们已经知道如何定义指标和进行计算了,但光有数据还不够,我们希望这些数据能以最直观、最有辨识度的方式呈现出来。 这就轮到现行描述符登场了,它们就像化妆师,负责给你的指标线打扮一番。这些描述符写在语句的最后分号之前,用逗号隔开。 比如你想让 macd 的 柱状图根据涨跌显示不同颜色,就可以用 colostick 想让某条线变成醒目的红色,就用 color red。 如果想强调某条线的重要性,可以用 linfic 来调整它的粗细,比如 linfic 三表示中等粗细, 还有 stick、 low stick、 line stick 等等,每一种都有特定的视觉效果。选择合适的描述符能让你的分析工具更具专业性和可读性。标准的颜色和粗细可能还不够个性化。 vba 提供了更强大的定制能力。 对于颜色,你可以使用 colour 加上六位十六禁制数来精确指定。这六位数分别代表蓝、绿、红三个颜色通道的强度范围,从零零到 f f。 比如 colour 零零 f f 就是 纯青色,因为红色和绿色通道全开,蓝色关闭。 而 color 八零八零零零则是一种橄榄绿。这种自定义方式让你可以创建独一无二的视觉风格。同样,线条的粗细也可以通过 lineitake 后跟一个零到七之间的数字来精确控制,零是最细,七是最粗。 比如你可以将关键的均线设置为 linux 七,让它在图标上格外醒目。掌握这些细节,能让你的量化工具更加专业和个性化。 今天我们快速梳理了 vba 公式语法的核心要素,从构成公式的语句,到驱动计算的运算符,再到塑造视觉效果的现行描述符,理解并熟练运用。这些基础是构建高效直观的量化分析工具的关键一步。 理论学习固然重要,但更重要的是实践。希望大家能动手尝试,将这些概念应用到实际的公式编辑中,不断探索和优化。
粉丝3136获赞4214

哈喽,你好,我是 tim, 那我们这个课程的第一节课呢,我想来简单的介绍一下我们这个课程是如何教学的,以及 vb 的一些基础知识。那么我们的课程呢,是以实力讲解为主,通过实力的讲解呢,我们再介绍相关的 vba 知识,那么这个好处呢,就是你可以很快的上手使用 vb 和处理工作中的一些问题, 那么他的缺点呢,就是知识体系的结构呢,会落一点,当然了,我们这个实力课程的安排呢,也是会尽量的按照这个 vba 的知识体系来慢慢的深入。所以说最好的话,等你学完了我们这个课程之后呢,再去买一本 vba 的知识体系比较完备的书来阅读一下,那么我觉得基本上呢就很完整了。 那么 vba 适合哪些场景?简单的讲,大部分的运用场景呢,我们是使用 vba 来解决掉工作中的一些重复性的劳动,比如说我下载了一个原数据,我需要每天对 这数据进行调整格式,删除一些行列,或者呢合并一些分散的工作部,然后呢上传到一些服务器中,这些呢都是最常用,但是也是 vbi 的编写中呢,最简单的。那么难一点呢,我们可以用 vbi 来做一些自定义函数,它的使用方法呢,跟我们普通的函数呢是一模一样的, 但是他的编码呢,会更加复杂一点,所以说我们的教学呢,会从这些基础的应用讲起。等基本解开了 vba 的面纱以后呢,我们就可以来讲解一些复杂的编程语言, 常用的一些判断语言,循环语句。基本上呢学到这里,我觉得你仔细听,然后配合练习呢,我觉得应该还是比较简单的,而且呢运用了这些知识呢,应该能解决掉很多的时间问题了。 接着呢,我们再通过一些复杂的案例学习更多的拓展知识。那么很多人呢,也可能听说过这个红,其实 vbi 和红呢并没有太大的区别, 编写 vba 有个最大的好处呢,就是我们可以通过 excel 录制一些操作,然后呢自动生成 vba 代码, 这样呢可以大大简化我们的输入方式。那么但是呢,通过录制生成代码的功能上来说呢,可能就不会不太灵活,所以呢,我们需要经过一些二次加工,让代码呢更加的灵活,来实现更加复杂的功能。那么课程呢,我们会从简单的录制开始学习, 那么其实简单的录制呢,也可以帮助我们解决好些重复性的劳动呢,那么最后呢,有些人可能会担心英语不好,会不会学,不会有 bba, 或者说学 bba 比较吃力呢?这个我承认,的确呢会是有一点点小问题的,但是呢,像我从小英语很差,经常考个三四十分,但是呢,我感觉学起来呢也并不是有很大的问题, 所以说英语的话呢,你也可以放心,如果说你初中时候能考个三五十分,基本上问题也不大了。好,那么第一讲的介绍呢,我就讲到这里,我们下一节呢就马上开始来进行一些实战操作。好,谢谢观看,我们下期再见。

这种下拉菜单下拉选中的效果是怎样实现的呢?大家好,我是办公室满浮,其实这个是数据的有效期, 首先我们选中需要设置有效期的区域,点击数据选项卡下的有效期,点击有效期, 有效期条件,我们这里选择序列,将我们的部门,我们可以打字输入,比如说我们输入行政部,大家记得输入英文状态下的逗号,再输入财务部, 点击确定,这个时候就出现了下拉选项,我们可以鼠标点选操作。这是第一种输入方式啊,如何取消数据的有效期?同样的我们选中我们的这个区域,点击有效期, 然后找到这里有个全部清除就可以了。第二种输入方式,我们是这样的,我们点击区列,这里有一个选择范围的图标,我们点选一下, 用光标选择我们的各个部门名称,我们就需要将我们的部门名称提前建入好,这个时候点回车,再点确定,你看同样的我们也有下了菜单,我在这里输入其他的部门,比如说我输入宣传部,这个就会提示错误, 输入不了,这个就是数据的有效期,他只能在我们的标题部门,还有请填写 部门名称,具体哪些部门我们可以把填进去,比如说行政部、财务部,我们先填两个确定,这个时候比如说填宣传部,回车出问题的时候,他就会提示出现我们刚刚设置的报错信息,方便大家录入信息数据, 比如说我们的工资,我们希望大家在填写的时候只能是五千到一万的区间,我们同样的选中这个区域,也可以通过我们的有效性的这个工具,这里我们就可以选择为整数 最小值,我们就输入五千最大值,我们设置成一万,那就说他只能填五千到一万这个区间内的整数,比如说六六六六是可以的,比如说我们这里的四九九九,他就会提示错误,大家学会了吗?这个叫数据的有效性,方便我们规范化的录入数据。

只要你懂得基本的 excel 表格的操作,认识基本的英文字母,按照我说的办法来念时来写,你就能够写出你的第一个 vba 程序,以后办公可以用自己写的 vba 程序来处理数据,让你的工作事半功倍的。 excel 表格呢?有四个表, excel 一, excel 二, excel 三、 excel 四,对吧?每个表格里边都有。呃, 有资料的,我现在呢,我按一下我这个合并,我这个合并我按一下哈。哎,他有提示了,我就合并完成了。我这个程序的意思就是说我这个,呃,以下文件有多少个表格?我要把所有的表格合并,前提是他他的列的,他的列是对的上的,我就可以合并了,对吧? 嗯,好。然后呢,看一下我这个每每一个资料表,我的那个标题啊,第一行那个列的名称 它是对得上的,我就可以合并上了。好,我看一下我这个程序是怎么样写的,好不好?呃,首先打开我的菜单的开发工具这里哈。点开开发工具,如果大家不知道菜单的开发工具怎么样调出来的话,可以看我之前录的视频哈。然后打开左手边微商贝斯就进入到我们的那个 vba 代码的编辑器了。嗯 啊,我这是我写好的程序,他的程序就比较短一点哈,很简单的一段程序啊。如果大家不知道怎么样建立一个新的程序的话,可以右击对象这里插入一个模块就可以了。插入一个模块就可以写我们的那个程序的代码了。如果想改那个模块的名称的话, 下面这个位置呢,可以改一下,我就随便打几个字母,对吧?我打了之后他的模块的名称就改变了,然后我我的程序就写在我的合并所有表格啊, 就是这个程序啊,如果大家要建立新的程序的话呢,首先就要写写 cut stop 开始,然后 end, stop 这里就可以了,然后 stop, 看后面这个就是程序的名称,我们执行的时候就执行这个名称就可以了, 然后我把代代码拷进去哈。嗯,按照惯例哈,我跟大家说一下每一个每一段代码是什么意思,好不好啊?比如说我前面这两行啊, d i m 开始的就是我定义变量哈, 我定义了一个常规的变量 a, 还有定义了两个变量,量取一,还有量取二,这两个变量它它的格式就是,呃,范围它,我是区域,定义了两个区域的格式,嗯, 然后下面哈我定义了它的变量之后,我就这这这一行代码是什么意思呢? application scrolling updating is 等于 force, 是说我这个,我执行下面这是代码,我首先写了这行代码之后,下面所有执行的代码它就不会显示那个过程的意思,这行代码就是 plus, 就是 不显示啊,因为后面你大家看这程序的最后面我所有代码执行完之后呢,它这里也有一个处 啊,处,我把这个显示的过程就设置为处,就是这个意思哈。嗯,其实这个代码啊,不重要,可以要,可以不要也行。 然后,呃,这后面这一行是什么意思呢?嗯,我这里有三行的数据哈,三行数据,我是我的 excel, 我 原来这个 excel 表里面不是有啊,我把这个合并的结果我先删除掉哈。删除,嗯,删除,然后我原来表格不是一是否一是否二是否三是否四,有四四个表格,对吧? 嗯,看一下,我首先把选选择我的表格的 shift 是 选择,选择了我的 shift 一 之后,我我要把 shift 一 这个表格进行拷贝。啊,拷贝 拷贝完之后,它就在 shift 一 前面呢,就建立了一个新的工啊,新的工作表了,新的工作表我把它就放在第一个工作表了,对吧? 啊?我建立之后它会放在 shift 一 前面那个位置,它会变成 shift 一, 然后我要帮它改一个名称内,这里有个内的参数,就是我要把这个 shift 一 这个表格改一个,呃,表格名称就是合并,合并数据,大家刚刚看到了我合并的那个表格,它的表格的名称就是合并数据,对吧?没错吧?嗯, 然后下下一段代码。呃,这个 a, 我 之前那个变量 a, 我 要进行一个赋值它,我把所工作表,我所有工作表 count 就是 所有工作表的数量,一二三四总共有四个工作表,对吧?我要把一个四,呃,四赋值 a 的 数值就是等于等于等于四了,因为我有四个工作表, 然后,呃,我要进行一个 shift shift 的 选择啊, shift 一 就是我要合并数据的一个工作表了,对吧?刚刚前面我已经插入了一个新的工作表,是 shift 一, 它是从前面之前那个 shift 一 拷贝过去的。 嗯,它只有,其实它只有第一个工作表的数据啊,我把它这个工作表的数据下面我要就就要把 shift 二, shift 三 shift 四的工作表合合并过去就可以了。 好,下面这我是怎么样合并呢?我这里看一下。这么长的一段代码哈,这这一整段代码嘞,我是用了三个 for 的 循环的,一个 for, 两个 for, 三个 for, 对 吧?大家看到了,是三个 for 的 循环的,它每个 for 的 循环结尾都是用 next 的 结尾的,对吧?我第一个 for 的 循环嘞,我就要看我的 shift 一 的工作表,我就就是说我要放合并数字的工作表,呃,我要看它的工作表,每一个 每一个区域,从 a 一 a 一 到这个区域是怎么样定义呢?就是看看一段这个,这这这个代码就可以了。我是从 a 一 到 a 一 的啊,向右 right 是 向右向右的最后一个字母, 这个区域一整行的区域,对吧?嗯,我看一下我的工作表是什么意思哈,那比如说我已经拷贝了啊,我拷贝一下这个工作表,复制一下就可以了。复制一下工作表。复制啊,那我复制了一个工作表,复制一下, 建立一个副本哈。啊,这个是我先新建立的啊,它是从 a 一, 对吧? a 一 就是 a 这个单元格,到 a 一 到最后一个有制服的单元格就是 f 一, 对吧? 从 a 一 到 f 一 一整行,我进行一个选择,就是这个意思,这个区域,这就是指这个区域那一行的代码,呃,这一行的代码就是我要选择这个区域, 就是啊,否一取两取一,就是我要看 a 一 到 a 一 最到 f 一 所有的单元格进行一个选择,一取就是每一个单元格, 我看去看,我要判断他每一个单元格,我是怎么判断呢?下面还有一个 for 循环,我这个 for 循环就从是从三到 a, a 就是 我原来所有表格,对吧?所有表格的数量从三到 a, 我 看一下我的,呃表格哈,从三的话三的话一二三,三的话就是四 f 二了,对吧? 三 shift 二到三 shift 二后面还有两个表格,就是跟 shift 二、 shift 三、 shift 四总共有三个表格,对吧?就是我还没合还需要合并过去的所有表格,就是这个意思, i 从三开始到 a a 结尾就是我剩下还要合并的表格,嗯,然后我要合并的表格,我要把首先选择,比如说我 i 从三开始的话,我要选择 shift 三 表格, shift 三我选择了 shift 三之后呢,我又判断它的每一个单元格,同样同样 shift 三的,呃,两举两举, a 一 到 a 一, 最后最右边的一个单元格的话,就是 a 一 到 f 一, 对吧?因为它们的格式是一样的,跟呃第一个表是一样的这个区域, 但是我我是在四 f 三这里,我要看四 f 三里的每一个表格啊,进行判断。然后我这两个循环之后呢,我有一个 if 的 函数,看看见没有 if 的 函数我就要判断了,整数一跟整数二 就是原来我四 f 一 跟四 f 三的表格哈,每一个单元格看它的啊,看它的数值是不是一样, 所以说我看一下,我看一下我的表格啊,四 f 一 就是这个嘛,从 a 一 到 f 一 就是我这个列的名称,它是每一每一列的名称,对吧?然后四 f 三就是,呃,第三个表格就是四 f 二,对吧?这这一个表格我就判断我要找出来它哪一列,从 a 一 到 a f 一 这里, 如果它的列是乱的话呢?我要判断它的列的名称是一样,比如说 a 一 a 一 跟我四 f 一 的 a 一 它的列的名称是一样的,对吧? 对得上的,如果他是对得上的话呢?我又干什么呢?我就首先要判断,嗯,如果他是 他的列的名称是对得上的话,我就要把那我我这个啊,四 f 三,四 f 三的他,因为他四 f 三是链子链子二的范围,对吧?然后他的数值选择哪个数值呢?从他的 a 一 开始, a 一 开始,然后这里移了一个位了,对吧?他是链子二的,链子二的后面, 它这里不是一,是二,二的话就是它原来的单元格往下移了一位,我看一下,我看一下,我这个 shift 三,这里啊, 就是这个表,我原来是 a 一 a 一 单元格的啊,往下移了,移了一位,就是它有数据的那一数,有数据的那个单元格了,对吧?从 a 二开始往下都是有,有啊,有姓名的数据的,我需要拷贝过去的数据的, 就是这个意思。我再看我这里啊,是我就要进行一个啊 a 二的选择,比如说如果它是呃 a 一 的移位,往下移了,移位就去去了 a 二,对吧?在这个位置相当于是 a 二的位置, 我选择了 a 二, a 二的话我还要进行一个区域的缓冲,大家看一下这一段代码就是呃链取式链损,就是我选择的区域就是 a 二, a 二还要进行一个往下的缓冲,到处是往下,往下去到整一链,整一链,有制服的整一链,我把它进行一个选择,在 这个代码是什么意思?我看一下我的表格哈,就是说我四 f 二这里,从 a 二开始去到 a 二最后下面最底下有有制服的一整列,就是这个区域,我把它进行一个选择,那一段段代码的意思就是,呃,我要把这这个区域进行一个选择 啊。 select 是 选择,我选择之后 select 就 选择的区域进行一个 copy 拷贝,拷贝的话拷贝了我,我把拷贝的内容去到四 f 一, 四 f 一 就是我合并数字的那个 啊,单啊那个表格,然后去到四 f 一 的话,我要去区域的选择,区域的选择就练取一,就是我 a a 一 a 一 那一行整一个,整一行, 整一行。比如说如果我是拷贝 a 一 的话,我就练取一的就是 a 一 的 a 一 的区域, a 一 的区, a 一 的区, a 一 的区域 去到呃往下移了八万这里有个八万,是吧?它往下移了八万,我们知道 a e 单元格它下面八万的,那是它是空白的,它是空白的这个区单元格来的空白的那张呢?它这里有个 up up up 那 个呃函数, 就是我八万那个单元格 a 八万那个单元格再往上移到往上移到有制服的区域, 对吧?大家看一下,哎,比如说这个是去到了 f 一 这里了,对吧?我去到八万呢,必须这个八万的话,然后我按住从这个位置,按住 ctrl 跟向上的那个箭头,它就去到了我这个表格的最后一个有制服的区域,对吧?单元格,有制服的最后一个单元格, 就是这个意思。其实我就要把这个单元格进行一个选择,它因为它下面就没有数据的,我要把最底下那个有数据的单元格进行一个选择,选择了之后呢?啊,我再看我的代码选择了之后啊, 就是啊,这个区域啊,不是这个区域,像这样代码,对吧?刚刚我是执行这样代码啊,我这前面这一段就是呢,但是呢他那个还还需要一个移位, off set 是 移位那个行往下移了一位,往下移了一位,为什么我要往下移一位呢?我看一下我的表格,刚刚我是选择了这个单元的,对吧? 如果他往下移一位,就是去到这里刚刚好,这个区域就没有没有数据了,对吧?其实我的目的就要把这个区域进行一个选择 好,我选择了之后我要干什么呢?其实这这一段整段代码就是把我刚刚前面拷贝的内容 啊,我在四府山那里拷贝的内容把,把它进行一个粘粘贴进行一个粘贴,我粘贴的嘞是不要格式,只需要它的数值就可以了,对吧?嗯,然后如果两个循环这里,呃,第一个循环的话,我就每一列 在 shift 一 这里,每一列跟那个 shift 三这里这里这里每一列进行对比对比把它 shift 三这里,哎, 跟它的列名称是一样的,所有数据一整列就拷贝过去,然后这里第二个 for 的 循环就是我需要从第三个表格开始去到 a 就是 最后一个表格了,因为 a 是 我所有表格的数量啊,我所我所有的表格都拷贝完,拷贝一轮过去, 我看我的表格哈,其实我需要的是否二,是否三,是否四,三个工作表都拷贝到,合并到是否一,这个工作表就是这个意思。好的,这个是我的程序的高清截图,大家可以截图保留一下哈, 一二三截图。好的,我的小程序就写到这里了,不知道大家看懂了没有,如果看懂了感觉到有用的可以帮忙点个赞赞,点个关注哈,如果不懂的可以在评论区里留言,谢谢大家!

让我们讲一下 winsolecap 函数快速查找,怎样从销售明细表当中快速查找出几个人的销售业绩。我们首先在单元格中波纹状态下输入等号, winsolecap 函数, 一个参数是查找值,就是查找对象,我们选择这个单元格符号, 二个参数是数据表,就是查找范围。我们选中 a、 b 两列,第三个参数是列序数,就是说这只是在这个范围的第几列,我们选择第二列,输 入参数。匹配条件,我们选择精确匹配,输入零,然后点击回车, 选中这个单元格,鼠标放在右下角,出现黑色十字框,双击,这样就可以了。你学会了吗?记得点赞关注哦!

只要你懂得基本的一下表格的操作,认识基本的英文字母,按照我说的办法来练习来写,你就能够写出你的第一个 vba 程序,以后办公可以用自己写的 vba 程序来处理数据,让你的工作事半功倍的资料表哈,大家看到没有,它是有重复的,我把重复的标识出来的。如果,呃,如果 这个重复的标示我是怎么样弄出来的,我再执行一下,那他就把有重复的资料标识出来了。嗯,我这个程序是怎么样写的呢?我先打开开发工具这里啊,打开左手边微商贝斯这个菜单哈,如果大家不知道那个开发工具的菜单在哪里调出来,可以看我之前录的视频哈。 打开 vose 之后,就看到我一个很短的一个小程序了,对吧?嗯,我执行这个小程序就可以把啊资料重复的检查出来了。嗯,大家可以先进新进一个新这样一个模块哈,右击这个对象,这里就可以插入一个新的模块了,可以写我们的代码了。 然后呢,我跟大家说一下我这个程序,嗯,是怎么样写的哈。啊,我先删除程序的内容,大家要写一个 v b a 程序呢,先写 sub 开始,然后这个就是程序的名称,然后用 n sub j 就 可以了,然后把我把我的程序的内容填进去哈。 嗯,小程序的内容,好,我,我一行一行一行跟大家说一下这个程序是什么意思哎,第一行 d i m 开始的就是定义变量哈,我定义两个变量, 定义了两个变量,一个 low, 一个 c u color l o 就是 low 行的意思, c u 就是 color, 就是 列的意思,我定义了两个变量的话嘞,我要取得我的表格啊。 low 是 取得表格啊,是 f 一 我这个表格的 a e 单元格哈。 a e 单元格它有多少多少行? 还有 a 一 单元格它有多少列?嗯,就是取得了这个一个行一个列的数量。我,我打开我的资料表跟你说一下吧,就是 a 一 这个位置, a 一 所在的那一整行那一整行它有多少列的意思?从 a 到 g 它有多少列?就是全除我的列,还有它 a 到最后一个单元格就二十八这里, 呃,这整整一呃整一列它有多少行的意思,代表它是有二十八行,对吧?嗯,就是我需要它一个整个这一块工作表这一块的函数跟列数,因为待会我进行一个呃程序的循环的时候,我需要用到这这两个参数的。 好,我继续讲一下。呃,大家,呃,主程序,这里我是这这一段,我是用了两个 for 的 循环,对吧?第一个 for, 第二个 for 都是用 n、 s, j, v 的 就可以了。 然后的话我第一个放是从拿啊,用,用循环多少次呢啊?我定义一个 j 从二到 low 这么多次,就是我从第二个单元格, 从第二行第二行开始,到它一整整个表的函数就是这么多。然后第二个循环呢? i 它是在 j 的 基础上,在 j 的 基础上到它循环的次数,就是我整个整个表格它有多少行的意思。嗯,好, 我跟大家说一下,追这两个循环,我看工作表哈,嗯,比如说我追是从第二个单元格开始,就就这一行开始啊,对吧?哎,以后,呃,第二个循环就是在追的基础上加个一,就是从第三行开始循环,对吧?那我看我的程序,哎, 我如果,如果我这个工作表的大家看到没有?笑死,就是我这个单元格哈,单元格的第一列看到没有?这这里也是第一列,如果他的第 i 行跟 d j 行 的第一列,他的单元格的制服是一样的话呢?发现他是一万样的话呢?我就要在我这个工作表的 c u 加一,就是最后呃这个表格的最后一列的位置哈,加一就是扩充一列的意思,第二行 第二行就是我 j 加一那一行,对吧?要标识出来它是重复的,对吧?嗯,这这一段的意思,我打开工作表给你看一下哈。所以说我先看 j 等于一的情况下, j 等于二的情况下, 从二开始,对吧?那这个 i 就是 三了,就是我要对比第三行跟第二行他是不是一样, 他的制服是不是一样,如果一样的话,我就在这这一块的位置再扩充一列,在这里打个重复的意思,对吧? 所以我如果这一等于二的话呢,我 i 的 话就不断的加,不断的循环,呃,就第三行,第四行、第五行,第六行就是一整行,这一整呃,每一行的数据跟第二行的数据进行一个对比,如果发现它是呃跟第二行的,呃,第 a 一 列 他的制服是一样的,就是姓名是一样的话嘞,我就要在在居列这里打个重复,对吧?我是下面的话不断的跟第二行来对比,然后去了当这等于第三行的话嘞,我又看第四行以下跟第三行对比, 不断的每一个单元的对比,发现他是从一样的话呢,他的姓名是一样的,我要把它重复标出来。嗯,所以我整个程序执行完之后呢,我就打了一个备注,是重复了,对吧? 所有循环结束了之后,我整个程序就结束了。这个就是我的程序的高清截图,大家可以截图保留一下哈,一二三截图。 好的,我的小程序就写到这里了,不知道大家看懂了没有,如果看看懂的感觉到有用的可以帮忙点个赞赞和点个关注哈,如果不懂的可以在评论区里留言,谢谢大家。

只要你懂得基本的 a c 表格的操作,认识基本的英文字母,按照我说的办法来练习来写,你就能够写出你的第一个 v b a 程序,以后办公可以用自己写的 v b a 程序来处理数据,让你的工作事半功倍。我这个表,我随便点一下,我这里,呃,点一下,没反应。我点 a a 这一列 啊,第一行,我点第一行,它是会显示一个字出来的嘛?我,我点下面呢,它就没反应,对吧?然后我点 b b 这一列的,我点了之后,它那个整整个工作表就没了。去去到 shift 二那个工作表了,然后我在 shift 二这个工作表,我再点一下呢,它那个资料表又出来了,对吧? 嗯,我又点一下,我又点一下,他又不见了,又去到四四 f 二这里了,我再点一下,如果把我把这个 b 的 数据删除掉呢?我把这个 b 的 数据删除掉会怎么样呢?删除掉哈, 清空这个内容。那如果我 b 二是空的话呢?我点他是没反应的,如果我点了这个 b 的 话呢?他又去到四 f 二这里了,我点一下四 f 二,他又回到资料表,对吧?嗯,好,我这个逻辑关系是怎么样的呢? 大家看一下。我这是,呃设置到两个程序了,我这里这里资料表,这里有个程序,然后 shift 二这里有个程序的,对吧?嗯。哇,大家双击一下这个资料表这里呢,就会出现出现一个,呃, vs vs 这里了,嗯, 然后,呃我们的,呃上面点这个 vs 这里,他就会帮我们建立一个程序。我这个程序是怎么样写的呢?就说啊,我是这样子的,我,我一句一句跟大家说一下, 呃,这个程序的内容呢?他就是中间这部分内容,哎第第一个程序就是说如果,我,如果我点的鼠标点的单元格,他的函数是在第一行,对吧?呃,如果函数是在第一行,我那个单元格就给个四给他,对吧?呃,第一行就是这个意思,比如说,我,哎,我,我回到我的工作表 哈,嗯,我删除这个四,就说我点了第一行,哎,这些删除掉吧,我点了第一行,他就显示四了,对吧? 呃。我点了,反正是第一行,第二行是没有反应的,就是这个意思。然后,呃第二句了,第二句了,如果我的 b 一 单元格,我资料表的第一单元格已经写了一个四的话呢? 呃我,我要干什么呢?我,如果我的 b 一 单元格写了个四,我就把资料表引到 visual, 它的显示的属性就 force, 就是 它显示的属性就是,呃,不显示的意思就是这样子。就说,呃,就看我的这个表啊, 这个系列表的 b b e 单元格, b e 单元格有没有写了四字,如果他写的话,他这个工作表就会隐藏起来啊?我现在我点一下 b e 这个单元格,点了之后呢,他就会把四字写进去了写,写了四字之后他就马上就隐藏了,对吧?那,嗯,对吧,就是这个意思。 然后,呃,它隐藏了这个资料表,隐藏了之后我,我就剩下去到 shift 二这个资料表了。 shift 二这个资料表呢?同样道理同样道理哈,我看一下我的程序是怎么样写。呃如果我,我看一下我这个 shift 二这个资料表,它的 b 一 单元格,大家看一下哈。 b 一 单元格, shift 二的 b 一 单元格现在是写了个四,对吧? 如果它 b 这单元格有个四字在里面呢?我要干什么呢?呃,我要判断这个 ifif, 看一下哈, if 函数,这里 b 单元格如果已经写了个四的话呢?我又把我的资料表的啊,数据库的显示的属性,呃,设置为 toto, 设置为 toto 就是 呃可以显示的意思哈,然后再把资料表呃选择到资料表这里就是这个意思。所以呢,我重复的点了这个 shift 二的资料表的话,我这个资料表又显示出来, 我再点一下,呃,基列表的话呢?因为他 b 这里有个四字,他又会基列表又隐藏起来了,对吧?说我不停的点,不停的点,他就会重复显示隐藏,重复显示隐藏。这个就是我的两个程序的高清截图,大家可以截图保留一下哈,一二三截图。 好的,我的小程序就写到这里了,不知道大家看懂了没有,如果看懂的感觉到有用的可以帮忙点个赞赞和点个关注哈,如果不懂的可以在评论区里留言,谢谢大家。

只要你懂得基本的校表格的操作,练习基本的英文字母,按照我说的办法来练习来写,你就能够写出你的第一个 vba 程序,以后办公可以用自己写的 vba 程序来处理数据的,让你的工作事半功倍。 有些人不知道学那个 vba 程序有什么用哈,我这里有一个实际的例子哈,啊,之前有个学校叫我, 以前有个学校叫我帮他做一个抽签的程序,他们班呢?有些学习学生的名单,一到三年级他是一到三年级的,有男有女的,他每一年呢又对学校的学生进行一个抽签,排班的抽签,他的要求就是,嗯,要一二三年级都要分类的抽 每一个,比如说我这里可以选择到每个每个年级要超多少个学生的这里哈,我可以选择一一二三四五六七八。我比如说我这里选四,每个人年级要选四个学生出来,嗯,比如说我这里显示的结果,对吧?然后呢,我设置好之后,我就把清单放在这里了,清单放在这里,只要我一点抽签啊,我试一下哈, 这里是一显示一个抽签的过程,他抽签的过程就显示出来了,然后等一会他就进行一个抽签。嗯,大家稍等一下哈,他一个抽签的过程, 因为他学校呢,那么多学生呢,要对学生按班了,按班按年级来分配的,所以要用到这个抽签的程序的。那好吧,我们已经抽出来了,就比如说这个是 三年级的,三年级的我是超超了三个同学出来,对吧?他还有分男女的,这是女的,我们先超女的,女的要超超,超过四个人同时出来,二年级也是四个,还有抽,抽完这个女的之后就抽男的,对吧?嗯,所以呢,这个实用性是很强的, 我们就可以用我们的我们的 vba 程序来写这个啊程序的代码了。嗯啊,然后我这个代码是怎么样的呢?我们打开开发工具就要进行 v vspace 写我的 vba 程序啊, 其实我这个程序呢不是小程序了,我这个程序是比较复杂的,我分了一个主程序,我,呃,我点击那个抽签的程序呢?我实际上我是先啊先调用这个主程序的抽签这个程序的,有抽签这个程序下面呢,他就有很多代码了,对吧?有很多很多,调用了很多,还有一个 qq 小 程 序,哎,其实我这里看起来我这个程序比较复杂一点,我都是啊,分了很多的小程序,一个一个一段一段的写出来的。嗯,然后对他的,比如说啊,我我这里有一个显示车车身结果啊,还有编辑列列表啊,都是一些小程序来的,还有一个显示的功能呢, 哎,都都分开来了,还有按性别,我是按性别抄的,我就调用这个程序,还有一个程序的复位这里哈, 还有如果不按性别嘞,就不按性别的这个小程序来这个程序。我把一个复杂的程序分了很多个,很多个,应该有十几个吧,分了有十几个小程序来 进行写这个代码的,写起来就会简单一点,然后我就,呃每需要的地方我就调用啊,比如说我框这里就按性别啊,还有刷新超超千啊,刷新超千这些股,超千这些股啊,还有返回超千啊, 我要是我要用到什么功能,我就分门别类这样子。哎,我写了那么多程序,我就把它合起来就完成了一个抽签的程序了,对吧?嗯。

想快速查询客户数据,手动做一个查询工具。好,如果工作中哈,我们想随时调用出我们相关的一些客户的那个订单数据之类的,那这时候呢,我们可以做一个这种客户管理的一个小工具啊,它的话是用 v 红来做的啊,非常方便我们查询啊, 那这块是怎么去实现的呢?主要是运用我们窗体和控件啊来做的,那像这个的话肯定用函数是做不了的哈,需要大家熟悉用宏啊,这里的话主要是用了一个 listbox 的 列表工具啊,那我们双击可以点开看一下这个代码是怎么写的,那这块也非常简单啊。嗯,大家可以去截个图啊, list 列表工具 啊,那我们双击可以点开看一下这个代码是怎么写的,那这块也非常简单啊。嗯,大家可以去截个图啊,你可以如果熟悉的同学可以去试着去练习一下,包括做有效评论之后呢,我们也可以发给大家,好吗?感谢观看本节视频啊,记得关注和点赞。

上一课我们探讨了时间函数与数学函数的基础,今天我们将深入探讨一些具体的函数应用。首先来看 round 的 函数,它非常基础,但极其重要。 大家看这个例子, round 三点五,结果是四,而不是三点五。四舍五入到整数位是三点五吗? 不,这里有个细节,对于五的情况, round 函数会向绝对值更大的方向舍入,所以三点五变成四负,三点五变成负四。 这在处理浮点数精度时非常有用。比如判断两个看似相等的浮点数是否真的相等,通过先撞到一定位数再比较,可以避免微小的计算误差导致的误判。 接下来是 s g n 函数,求符号值。这个函数简单直接,就是告诉你一个数是正负还是零,返回一负一或零。别小看这个函数,它在很多场景下非常实用。 比如你想快速判断某个指标是不是从负变正,或者价格是不是跌破了某个关键支撑位,用 sgn 就 能瞬间得到结果。比如如果 sgn close 减 open 大 于零,说明收盘价高于开盘价是阳线, 反之则是阴线。这种判断在构建交易逻辑时非常常见,能极大简化条件语句。我们快速过一下几个基本的三角函数, sin 正弦、 s q r t 平方根, t a n 正切。 注意这里的角度, x 都是以弧度为单位的,不是我们日常说的角度。比如 s q r t c loss 就是 取当前收盘价的平方根。 虽然在传统的股票技术分析中,这些三角函数不像均线、 macd 那 样天天用,但在某些特定的量化模型里,比如分析价格的周期性波动,或者在高频交易中计算某些特定的统计特征时,它们还是有其用武之地的。 比如,有人可能会用正弦函数来拟合价格的周期性变化,或者用平方根来对数据进行某种标准化处理。了解它们的存在和基本用法总是有备无患。 好,现在进入重头戏行情函数,这些函数是我们获取市场数据的直接接口。 c close、 hatch、 low、 open 这四个是绝对的核心,分别代表当前 k 线的收盘价、最高价、最低价和开盘价, 它们就像构成图表的基本像素点。所有的技术指标,无论是简单的移动平均线 microsoft 十,还是复杂的布林带 rsi, 最终都是基于这四个价格数据计算出来的。 理解并熟练运用这些函数是进行任何技术分析和策略开发的前提。没有这些原始数据,一切都是空中楼阁。除了价格,成交量和成交额同样是衡量市场活跃度的重要指标。 vol 和 among 分 别代表当前周期的成交量和成交额,但这里要注意区分赋权和未赋权的概念。 o、 mount、 o, close 等带 o 的 函数表示的是原始数据没有经过历史分红、送股等调整,而 vol、 mount 通常指的是复权后的数据,更能反映真实的市场表现。 此外,像 a s k price 为卖价, b i d price 为买价,这些主要在分比周期下有效,能提供更微观的市场深度信息。 对于期货来说, opening 持仓量也是一个关键指标。这些数据结合起来能帮助我们判断资金流向和市场情绪。有时候我们需要将个股的表现与大盘进行对比, 这时 edx edx edx edx edx edx 这些函数就派上用场了,它们能获取同期大盘指数的相应数据。比如,你想知道某只股票今天的表现是强于大盘还是弱于大盘,就可以用它的收盘价减去 index。 另外,对于 etf 投资者来说, iopv 函数非常关键,它提供了 etf 基金份额的参考净值,是评估 etf 价格是否偏离其实际资产价值的重要依据。理解这些函数有助于我们进行更全面的市场分析。 内外盘 bvo 和 svo 是 判断市场情绪的一个有趣指标。外盘是主动买入量,内盘是主动性卖出量。 如果外盘持续大于内盘,可能意味着买方力量较强。当然,解读内外盘需要结合其他因素,不能迷信。 sicata 函数则直接告诉我们这只股票的流通盘大小单位是首,这对于计算仓位非常重要。比如,你想控制总资金的百分之十配置在某只股票上,就需要知道它的流通盘,才能算出具体的买入数量。 特别是对于大资金操作来说,了解流通盘是管理风险和执行策略的基础。股票交易中,停牌是个绕不开的问题, sason 函数就是用来判断某只股票在特定日期是否处于停牌状态的, 这对于风控事关重要。比如你的策略可能在某个条件下触发买入,但如果目标股票恰好停牌,就需要这个函数来拦截,避免无效或错误的交易指令。 然后是 ex tit, 这是一个非常强大的功能,它允许我们访问平台提供的各种扩展数据,比如自定义的指标、基本面数据等等。 通过 name 参数,指定数据名称, s t o call 指定品种, time 指定相对当前周期的位置,就能灵活地获取所需信息。 这极大地扩展了我们策略的数据维度。 ex tata 本身已经很强大了,但配合这些查询和排名函数,威力倍增。 比如 e, s, d, t, r, 你 可以根据某个扩展数据的值筛选出一批符合条件的股票,比如筛选出所有 z, z, z 指标大于十的股票。 ex t, d, t max 则是判断当前这支股票是否满足某个条件,比如 z, z, z 是 否等于十。 ex, d, d, t, r 能告诉你当前股票在所有股票中基于某个指标的排名是多少。 e x t w e g 和 e x k t v, u 则分别用于统计有多少股票比你设定的值大,或者找到排名第十的股票对应的数值是多少。这些函数组合起来可以实现非常复杂的选股逻辑和排名策略。 现在我们来看看组合模型相关的设置。 stgrap max holding, 顾名思义就是设置你的组合模型最多能同时持有多少只股票。 比如你设成五十,那模型运行时最多就只会在五十只股票里做买卖,这对于控制风险和管理复杂度很有帮助。 s e t graph mod 则决定了模型的运行方式。 mod 等于零,是纯脚本模式,所有逻辑都在脚本里跑 m 的 等于一是 c 加加模式,意味着买卖逻辑可能由后台的 c 加加引擎来优化执行,通常效率更高,尤其适合处理大量股票的组合。 选择哪种模式取决于你的策略特性和对执行效率的要求。在组合模型中,我们需要知道每只股票的具体情况。 getstockfore 就是 干这个的,它能返回一个包含详细信息的结构体,这个结构体里有买卖点标志 b u 和 se、 当前价格 price、 持仓状态、 holding 以及是否停牌 suspend。 通过这些信息,我们可以精确判断某只股票在当前周期是否出现了买入信号或者是否应该卖出,同时还能知道当前的持仓情况和价格。 g stocking for bindex 是 用股票 id 来查询效果类似。这两个函数是组合模型进行决策的核心输入之一。 知道了买卖点,下一步就是看我们手里到底有没有这支股票,以及持了多少。 stocking 就是 用来判断某支股票是否已经在你的组合模型持仓列表里的 返回 troll 或 false, 非常直观。如果想了解更多细节,比如买了多少手? holding 成本价是多少? by price 什么时候买的? by date 到现在赚了多少钱? profit 当前价格是多少? price 持有了多少个周期? howding periods, 那 就需要用到这 fodding ninf。 这两个函数配合使用,能让你对自己的投资组合有清晰的掌控,光知道不行还得动手。 drape by 和 group sell 就是 组合模型里的买入和卖出指令, 调用 drop by stock 模型就会尝试卖出。 当然,实际成交还受市场情况和风控限制。 jubiso 和 jubiso 则是把股票加入到备选池,不是立即交易,而是让模型在后续的筛选中考虑。 霖迪拿梅巴斯基可以检查某只股票是否在动态股票篮子里,这通常是指那些被重点关注的获选标的。 s e t growpundix 在 c 加加模式下很有用,可以指定按哪个扩展数据的排名来排序备选股票进行买入。最后, get out in profit 能快速告诉你整个组合模型当前的浮动盈亏,这是评估策略表现的关键指标。 最后,我们来看如何将策略信号转化为实际的交易指令。 word 函数是通过网络端口发送信号,你需要指定操作类型 operation, 比如开多开空通道号 channel 以及接收信号的平台地址。 a d d r pass 的 则是另一种函数。交易方式参数更丰富,可以直接指定订单类型。 older type、 账户 account, 价格 price, 数量 valuem 等等。这两个函数是连接策略和真实交易的桥梁, 没有它们,再好的策略也只能停留在纸面上。关于这些函数的应用,我们就先介绍到这里。

大家好,今天我们来聊聊 excel 里的动态范围,也就是那个能自动适应数据变化的智能选区。你是不是经常遇到这样的问题,数据每天都在变,行数时多时少,但你的红却总是选不准范围。 别担心,我来教你一个一劳永逸的解决方案。想象一下,你的 excel 表格就像一根会伸缩的数据柱,今天可能只有五行,明天可能变成一百行。 这时候如果用一个固定长度的选区框,要么选多了空单元格,要么选少了漏掉数据。我们需要的是一个能自动找到数据边界的智能选区。 让我来演示一下这个神奇的代码。首先,我们定义一个变量,来记住数据的终点线在哪里。 关键就在于这一行代码从 a 列的最底端往上涨,碰到第一个有内容的格子就停下, 这样无论你的数据是十五行还是五十行,他都能精准定位。然后我们只需要从 a 一 着色到刚刚找到的最后一行就可以了。 看同一个红,两份不同行数的数据全都搞定,它总能找到当前数据的边界。 相比之下,如果你用固定范围,比如 a 一 a 一 零零,数据少的时候会选多数据多的时候又不够用。而这个智能方法就像给你的红装上了 gps, 永远能精准定位。 记住这个小技巧,下次写红的时候,再也不用担心数据横竖变化了。你平时是怎么处理这个问题的呢?欢迎在评论区分享你的经验。

好,咱们从这个开始呢,我们就来学习啊, excel 的高阶部分,也就是啊红和 vba 相关的知识,那在我们要深入去学习红和 vba 的详细的知识之前呢,我们首先啊先明白这两个概念,也就是到底什么是红,什么是 vba, 以及呢红和 vba 之间啊有什么关系?好,那我接下来啊,就通过三句话给同学们说明清楚啊这两个概念。 我们首先来看一下第一句话,咱们来看所谓 vba 啊,他的全称就是威尔 back for applications, 他是一种编程语言,咱们不要去记忆啊,这个全称啊,对于我们学习 vba 来说,那么你去记忆这个全称是没有任何意义的,同学们应该抓清楚的重点是 vba, 它是一种编程语言, 有些同学啊,可能以前没有接触过编程,对这个编程语言没有什么概念,那么在这里啊,给同学们解释说明一下,那么所谓编程语言啊,他实际上就是一种语言,那么 语言对于我们人来说,如果我们和其他人打交道,那我们使用是人类相关的语言,那么比如说我们和中国人沟通,我们就使用的是汉语,而如果呢,我们和老美沟通,我们使用是英语, 而我们现在呢是要做什么事情?我们是不是要和计算机打交道,也就是和我们的电脑打交道,我们想要让计算机 去帮助我们去做一些事情。好,那么这个时候我们就肯定不能使用人类的语言了,我们就要去使用一种可以让计算机帮我们做事情,也就是我们和计算机之间进行沟通的一种语言,那么这种语言啊,就叫做编程语言。 人们在之前啊,可能接触过一些变成语言,比如说 c 语言,他就是一种变成语言,或者是抓外语言,那么他也是一种变成语言。而对于我们来说啊,我们现在所需要掌握的是 vba 这种变成语言,不管你接触的是什么类型的变成 语言,他的目的都只有一个,就是让计算机帮助我们去做一些事情。好,那我给你们举一下例子,比如说我们在日常的工作中有可能会遇到一种情况, 呃,上集呢,想要让我们呀把一些啊一个赛的文件,把它合并到一个一个赛的文件中。好,那么这个时候,如果对于我们来说啊,我们通过人力进行操作,那我们是不是需要把每一个一个赛文件全部都打开, 然后通过复制粘贴把它粘贴到同一个 excel 文件中,咱们来想一下,这样是不是特别的费时费力啊?而对于我们来说,如果我们能让计算机帮我们做件事情,那我们就可以直接告诉一个 sere, 你把这些文件中所有的内容全部给我合并到一个 excel 文件中, 让同学来想一下,是不是我们通过这种编程语言就可以告诉计算机,让他帮助我们呀去做一些事情。好,那么这样呢,是不是就可以有效的去提升我们 工作效率啊?好,那么同学们要明确清楚, vba 它是一种编程语言,编程语言对于我们来讲就是一种工具,是我们能够让计算机帮助我们去做一些事情的工具。好,那么理解了 vba 它是一种编程语言,是什么含义?之后呢?接下来我们再来看,那么到底什么是红? 咱们来看通过 vba 编写的一系列的指定组成的程序,那我们称之为红,也就说红,它实际上就是程序,我们呀通过编程语言,实际上就是在向计算机发号施令, 所以呢,我们可以通过威逼去让计算机帮助我们做很多的事情,那么也就是发送一系列的指令,这一系列的指令那么组成的集合,那么我们呀就把它称之为程序,这个程序呢,我们就简称为红。好,那么我给同学们还是举个例子,那么比如说我们刚才是不是让一个 帮助我们呀,把很多的一个 c 二文件全部都合并到一个一个 c 二文件中啊,那么我们可以发送第二个指令,就是啊,让他把所有这些数据全部给我们啊,进行格式化处理,比如说呢,全部啊转换成人民币数字的格式。 好,那么第三个呢,我们可以啊,让一个 cir 把这些数字啊,然后他的样式再做一下调整。那么这边想一下,我们是不是就可以通过 vba 指挥 excel 帮助我们做事情,我们就可以让他把这几个指令一次性全部都进行执行。那么同学们来想一下,是不是啊,我们就是通过这种编程语言,然后呢去进行了一系列的指令发送, 然后这些指定组成的程序的集合,那么我们就把它称之为红,所以啊,这个红听起来这个名字啊有点玄乎,但是实际啊,他就是通过编程语言去编写的程序而已。好,那么我们呀,为什么要 通过 vba 去编写红?我们为什么要学习这块知识呢?那么这边来看,通过学习 vba 去编写红,有利于啊我们高效的去完成重复性的数据任务, 那么也就说我们要自己去通过一个赛尔去完成很多的工作,那么对于我们来说是费时费力的,比如说我们刚才讲到的把多个以赛尔文件合并到一个一个赛尔文件中, 我们如果这些文件比较多,我们可能需要操作五分钟,十分钟,甚至可能是一个小时,因为有可能会出错。但是如果我们掌握了威边,我们去编写程序,也就是红, 那么这个时候我们就可以直接执行这个程序就可以了,而程序执行的时间可能就只有几秒钟,那么同学想一下,是不是我们就能够高效的去完成这些重复性的数据任务了?而且对于我们来说,我们以后如果再遇到这种需求,那我们直接把这个程序调出来,然后再次进行执行,那么是不是 不管你有多少一个在文件,不管老板给我安排多少次交通任务,我都可以通过一个程序来搞定。所以啊,对于同学们来说,如果在实际的工作中,那么就有这种重复性的数据的处理的任务,那么这个时候就一定要学好红和 vba, 我们只要掌握了 vba, 然后去编写红这种程序, 那么我们就可以啊,在工作中去节约我们大量的时间,可以去做更有意义的事情。好,那么我们这一节课就已经讲清楚这两个概念,也就是什么是红,什么是 vba, 以及呢红和 vba 之间的关系,我给你们总结一下, 所谓 vba 就是一种编程语言,也就是啊我们去让计算机帮助我们呀自动来做一些事情,而我们通过 vba 去向计算机发号施令,那么这一系列的这个指令的集合,也就是啊一个程序,那么这个程序我们在 excel 中我们把它简称为红,那么我们学习 一个赛尔中的威边和红这块的知识啊,目的是在于我们可以啊,非常高效的就可以解决掉很多重复性的数据处理的任务,那么有利于啊去提升我们的工作效率,咱们只需要在这一节课理解到这里就可以了。 好,那我们下面的课程中啊,很快就给你们展示啊红是如何进行操作的,以及呢 vba 它是如何啊去进行编写的。好,那么这节课关于啊红和 vba 这两个概念呢,我给你们讲解到这里。

做经销唇,你还在用公式搞,你累不累啊?做经销唇, cba 才是真的神。本来我不想讲的,经销唇呢,是一个很大的坑啊,看上去简单,入库出库加一个明细,对吧?那其实呢,他如果要做起来是一个比较完备的一个体系,相当于是个小系统, 通过公司来做呢,很麻烦,而且呢会导致整个表格啊非常的臃肿啊,运行很慢。其实呢,通过 vb 可以通过几行简单代码就可以实现, 我们看一下,这是一个入库单,我们在这里输入对应的一二三,对吧?我把填充过去,这样子呢,我直接点击导入,他会把这个数据啊放到这里啊,放到这里,我们看一下,我点击导入 过去了啊,是不是一二三填过来,而且呢工作表进行了保护,我无法去修改这个入库明细啊,库存明细对不对? 那比如说我再加上四五六,同理啊,我给他放过去,对吧?导入我们看一下四五六,直接接到一二三,后面有没有毛病,完全没毛病对不对?那有同学说你老是三行三行的,那不对啊,对吧?那可以七八 九啊,十对不对?四行也可以啊,其实无论你几行都可以,因为我代码选择的是除了标题行以后的啊这些连续区 点击导入,那这个时候呢,他就导过去了,一二三四五六七八九十都有了,那大不了我们出库的时候加一个删除键,比如说我把库存查询出来放这里啊,一二三,我点击删除, 就把这个数据给它对应的清空掉某一些特定的行数或者数量就可以了。所以说我们看下代码,代码其实呢非常简单,就这么几 啊,一个是把这个薛特二不要保护,对不对?节保护,然后呢把薛特一除了第一行以外的啊复制内容进行复制粘贴,套薛特二的 从 a 三万往上走的第一个飞空单元格的区域里面去,上面是个连续区域,然后呢把 ae 的对应区域呢清空内容, 然后第二个呢把工作表奥呢给他进行一个保护,省的有限呢去篡改,对不对?就这么简单。 vba 其实真的不是那么难,但是如果你学过一点点之后呢,你就再也不需要通过那么多的公式去解决一个进销存的体系问题了。

只要你懂得基本的一下表格的操作,认识基本的英文字母,按照我说的办法来练习来写,你就可以写出你的 vba 程序了。这个表格呢,他有身份证,有用户资料,但是呢,我不知道这个人的性别,我提醒一下哈, 他的性别就出来了,对吧?啊?我把这个性别删除掉,我重新提醒一下,他又出来身份啊,这个人,他就是这个表格,他可以根据身份证的号码 啊,区分出他是男还是女,他的性别就是这个意思。然后我看一下我这个程序哈,我这个程序是怎么样写的呢?我先打开我的开发工具 啊,点开左手边 vsco, 打开我的电代码的编辑器,如果大家不知道那个开发工具怎么调出来的话呢?可以看我之前录的视频哈。嗯,我点了 vsco 这里啊, 这里就是我打代码的编辑器,大家可以看到我这里模块一,这里有一个很小的程序,就这么短的程序,它的程序的名称就是识别性别,对吧?识别性别。嗯, 如果大家不知道怎么样建立一个新的模块的话呢?可以上面这里右击对线,这里插入一个模块,插入一个模块二就可以写我们代码了,我的代码呢是写在我的模块一这里的。嗯,我跟大家说一下怎么样建立一个新的程序哈,我把我这个程序删除掉。 如果你要建立一个新的程序的话呢?你先写好 sub 开头,然后 and sub 加尾就可以了,中间可以写我们的程序的内容。呃,上面这里就是我的程序的名称,对吧?好,我把我的程序的内容填进去哈, 点进去啊,这就是我的程序的内容,我跟大家,我跟大家说一。一句一句跟大家讲一下程序的意思吧,好不好?嗯,第一句,嗯,第一句。 d i m。 开始的就是定义,我是定义了三个变量啊,没有指定他的制服类类类型的,然后定了三个变量,一个两个,三个 这个,然后呃这两个变量,一个 low, 一个 current, 这两个变量呢?我是,呃付给了它什么数值呢?我就要看我的工作表,是不是就是我,我那个工作表哈,嗯,就是我要执行的那,呃呃执行的那个工作表,看它的 a a e 这个单元格, 大英大一单元格,它的所在的那个区域,一整块的区域,它有 low 就是 多少行的意思, color 就是 多少列的意思,我把这个区域的函数跟列数分别给了这个变量, low 跟 color 这两个变量哈,我看一下,嗯,看一下我的工作表, 就是说我这个工作表 a 一 a 一 是在这里吧,对吧? a 一 所在的一直又往右扩展啊,有制服的一整块区域,还有往下扩展,就是说我有制服的这整块区域,它到底有多少行跟多少列? 函数的话就是十九行,对吧?因为去到十九行这里列数的话就是 a 到 h 它有多少列就是多少列,我要取它的函数跟列数,因为我后面呢程序是需需要用到这两个,呃两个数据的, 然后取得了这两个数据之后呢?我下一个的话,我下一个的话,我是进行一个循环, four, four 就是 一个循环,然后结尾就是 next 结尾,对吧?嗯,我循环的次数呢是从零开始到它的函数按它的函数减去二, 按按它的函数减去二。循环那么多次,好,我是怎么样循环呢?我循环之后呢?我就看我的第二啊,我就看我量取量取第二的单元格,对吧?大家看一下量取第二的单元格是什么数据 list 第二的单元格啊,就是第二,就是这个吧,第一这一列就是我的身份证号码,对吧?第二从第二开始就是闯出填了我的身份证的信息了。第二单元格,我看我的第二单元格啊,第二单元格它 off 线就是一个移位 移了,怎么啊?它的移位的话呢?它的行这个 i 就是 行,零就是列,我移位的话移位 i 行零列 我一位,零列的话相当于我的列是不一位的,但是我的函数是一位,就是往下移一位,哦,不是,就是往下移一位,移 i i 位,如果我 i 是 从零开始的话呢?啊,零就是不一位,对吧?但是如果 i 从零到一到二,就是呃到三到四,不定不不断的从第二单元格开始 往下移位,就变成了第二第三第四,如果它 i 是 递增的话,就往下移位,就是这样子啊,我每每取它一个身份证的号码之后呢,我这里有一个 mid 的 函数,对吧? mid 的 函数就是我要看它的第二这个单元格,从第第十七个字母 开始取他一个制服,对吧?因为我的身份证呢,是十八位的身份证是十八位的,我为什么要取他的第十七位这个数呢?十八位的身份证第十七位这个数据呢?他是他是储存了哎,我们性别信息的 啊,我根据身份证的第十七位来判别他的性别的,如果他的性别是激素的话呢,就是男性的,如果是偶数的,他就是女性的,激素的话就是一三五七九, 就是这些是,呃,制服的话呢,它就是男性,对吧?我是有。首先我又根据它第十七位的身份证信息来判别它是男性女, 然后取了第十七位的呃数,呃,那一个数据之后呢?我用 v a l v a l 就是 我有,我要把我取的的那个身份证的制服 v a l 把它转换成一个数级形,数级形,因为啊,我的 a, 我 的 a, 它会用呃这个变量 啊储存了我,我取得了身份证第十几位的啊信息,并且要把它转换成一个数值,数值是不是可以加减乘除等这种类型,对吧? 然后呢,我取取得了身份证的信息,把它复制了给变量 a 之后呢?啊,我 g 这一列, g 二这一列就把它显示出来,还有 h 二这一列啊,进行一个把把我取得的第十几位的身份证除以二, 这个 mod 二就是除以二所得的余数,对吧?啊,除以二,如果它是奇数的话呢,它除以二之后它就会有余数的,如果它是偶数的,比如说它是二乘以二的话呢?它的余数 mod 就是 取它的余数,它的余数就是零的 啊,如果偶数除以二,它的余数是零的啊,我把那个我把它的余数放在 h 列这里,然后把 a 放在 g 列这里,它会表格上会显示出来的,大家看一下哈,你看一下我的工作表, 大家看到没有?区列这里就是我取了这个身份证的第十几位,对吧?比如说这个身份证,呃,倒数第二位就是一,所以他是一。这个身份证倒数第二位是七,所以他是七,对吧? 嗯。然后嘞,呃余数是多少嘞?除以二余数就是 h 列这里一除以二的余数,因为他是奇数,除以二之后他的余数就是一七除以二的话他的余数也是一。 二是二是偶数,除以二的话它就没有余数,所以余数是零,对吧?所以呢余数呢?只有余数呢?只有一根零出现。看见 h 列这里没有。嗯,好,再看我的代码, 好,哎,我取得了这个余数之后呢放在 h h 列这里了。然后呢我就我就进行一个比较了。进行一个 if 函数,看见没有?这里 if 函数,然后 and if 加尾的 啊,如果的就是如果的意思。我判别他这个,呃。我这个第十七位的身份证号码那个位置除除以二之后他的余数我要看他有没有余数,如果他有余数的话他的余数会大于零的, 如果他有余数的话就是证明大于零的话就证明他的他的第十七位就是一个男性,有余数就是男性,对吧?所以判别如果他是符合这个条件的话呢?我我又在 b 二这个位置是我放置那个性别的地方的 b 这一类哈。 哎还有一个移位从,哎如果 i 事情你从零开始不断的往下移位的话,哎就可以慢啊一个一个的填上去了。然后如果他的余数是符合条件,嗯大于零的,我就判别他是男 如,哎其他的条件其他的条件是没有余数的话呢?我就,哎身份证信息就是一个女的啊。然后,哎他只有两个条件,一个男一个女, 对吧?好了,我判别完之后呢?我这个衣服函数,函数我就结束了,然后整个程序就结束了。好的,我的小程序就写到这里了,不知道大家看懂了没有,如果看懂的感觉到有用的可以帮忙点个赞赞和点个关注哈,如果不懂的可以在评论区里留言,谢谢大家。

依旧 vba 红展示统计双色球,以十七号为界限统计大小号,这就是它的代码,还是写了不少的,直接点击运行,然后把它给关掉。我们看一下一共三千三百九十六组数据,最新一期,三小三大六、十三 十七,大号十九二十四、三十一。这是大小号比例统计格式问题,忽略中间这个零比六或六比零,代表全大号和全小号 十八次占很低,比百分之零点五三一比五,两百零八次。着色的是最多的三比三,由一千一百六十七占比高达百分之三十四点一六。所以万事万物都讲究一个平衡,平衡才是常态。这边是近十期的一个分析,大号数,小号数, 哎,近期就出现了一个全小号,就像咱们追逐梦想一样,哪怕概率很小,但总会成功的。下面这里咱们可以看到 针对大小好的一个特征,在所有小号当中,基数偶数比例大约是五十三比四十七。在所有大号当中,基数偶数比例大约是四十八点六比五十一点四。接下来是第一次出现全为小号的期数是三十五期,因为第一行是标题,所以是在三十六行, 那就是这个第二个出现权,大号在五十七加一等于五十八行。这边还统计了一个连续性统计,小号最大连续数为六,表示小号多余,大号的开奖结果中最高,连续了六次。同理,在历史当中大号多余,小号期数最高,连续了十三次。后面这些分析就是做一个警示, 彩票这类东西是无法预测的,千万要记住警惕预测陷阱。当有人说能带你起飞,带你赚钱时,你一定要提高警惕,这就是今天用 vba 红代码做一个统计分析,而你要求代写红代码也可以,它能帮我们简化时间,便捷咱们的生活。