当前位置:首页 > 办公 > Excel教程 > 正文内容

excel数据透视表之VBA运算符

酷网3周前 (10-08)Excel教程24

还记得小时候学习数学的经历吗?很小很小的时候,我们会接触到数字,大人们会教我们数数,认识简单的数字,慢慢地我们会开始学习简单的加减法,再大一点,会学习乘除法,背诵乘法口诀,随着学习的深入,我们会逐渐学习到更复杂的运算和规则。

运算无处不在。在编写程序代码时,很多内容都是在进行各种各样的运算,因此,运算符非常重要。

当然,最开始我们都是从了解最基本的运算开始,逐渐深入到更多的运算内容。最先应该了解的当然是加、减、乘、除等算术运算符。

算术运算符

常用的VBA算术运算符有:加(+)、减(-)、乘(*)、除(/)、整除(\)、取模(MOD)、求幂(^)。基本的运算如下所示。

说明:

对于除法(/)运算符:假设z=x/y,如果将z声明为整型数,则结果为4,即直接舍弃掉小数位;如果将z声明为Single型或Double型,则结果为4.5。

整除(\)运算符,即在除法运算中,结果直接取商,而不管余数。

取模(MOD)运算符,即在除法运算中,结果取余数。

将变量、常量或其他元素使用运算符连接起来,就组成了表达式,特别地,单个的变量或常量也看作是表达式。

关系运算符

关系运算符用于比较,也称为比较运算符。VBA的关系运算符有:等于(=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、不等于(<>)。基本的比较运算如下所示。

在VBA中,关系运算符用于比较运算符两侧的表达式结果,比较的结果为True(真)、False(假)或者Null。因此,关系运算符常用于条件判断中。

Is运算符

在VBA中,经常要在对象变量之间进行判断,例如判断两个对象变量是否引用同一个对象,这时就要用到Is运算符。

对象变量1 Is对象变量2

如果对象变量1和对象变量2都指向同一个对象,其结果是True,否则是False。

对象变量Is Nothing

用于判断该对象变量是否有已设置对象引用,如果没有则为False。这是程序中经常会用到的语句。

示例:

结合前面学习的系列知识,我们来看看下面语句的意思。

Intersect(ActiveCell, Range(“A1:B2”)) Is Nothing

该语句判断当前单元格是否在单元格区域A1:B2内,如果当前单元格不在该区域内,则为True。Intersect方法属于Application对象,返回一个Range对象,代表该方法指定参数的交叉区域。

逻辑运算符

逻辑运算符用于对表达式进行运算并返回一个逻辑值。VBA支持6个逻辑运算符,即Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑与或)、Imp(逻辑蕴涵)。其中,Not、And、Or在我们通常的程序中经常会用到,应重点了解。

Not

对表达式进行逻辑非运算后,如果表达式的结果为True,那么Not运算使其值变为False;如果表达式的结果为False,那么Not运算使其值变为True。其格式为:

Not 表达式

运算结果表如下:

表达式Not 表达式

TrueFalse

FalseTrue

And

如果执行逻辑与运算的表达式都为True,则其值为True,只要有一个表达式的结果为False,则其值为False。其格式为:

表达式1 And 表达式2 And 表达式3 And … 表达式n

表达式至少有2个。

运算结果表如下:

表达式1表达式2表达式1 And 表达式2

TrueTrueTrue

TrueFalseFalse

FalseTrueFalse

FalseFalseFalse

Or

如果执行逻辑或运算的表达式中至少有一个为True,则其值为True,如果表达式的结果都为False,则其值为False。其格式为:

表达式1 Or 表达式2 Or 表达式3 Or … 表达式n

表达式至少有2个。

运算结果表如下:

表达式1表达式2表达式1 Or 表达式2

TrueTrueTrue

TrueFalseTrue

FalseTrueTrue

FalseFalseFalse

示例

结合前面学习的系列知识,我们来看看下面语句的意思。

ActiveSheet.Name=”工作表1” Or ActiveSheet.Name=”工作表2”

如果当前工作表是“工作表1”,或者是“工作表2”,则为True。

ActiveSheet.Name=”工作表1” And Range(“A1”).Value=”工作清单”

如果当前工作表是“工作表1”,并且当前工作表的单元格A1中的值为“工作清单”,则为True。

ActiveCell.Font.Bold = Not ActiveCell.Font.Bold

如果当前单元格中的字体为常规,则将其设置为加粗;如果当前单元格中的字体已加粗,则将其设置为常规。

补充说明:上述6个逻辑运算符也可作为按位运算符使用,并且我们只介绍了常用的3个,在后面的系列中如果用到其它的3个运算符,我们会再进行详细介绍。

字符串运算符

VBA中的字符串运算符仅一个,即字符串连接运算符,使用 & 表示,用于将一个或多个独立的字符串连接在一起。例如:

“My ” &”Family”

的结果为:

My Family

运算符的优先级

如果在同一个表达式中包含有多个运算符,那么就需要了解VBA是如何安排那个运算符先运算,那个运算符后运算,即运算的优先顺序。不了解运算符的优先顺序,随意组合运算符,可能得不到我们想要的结果。

下列出了VBA中运算符的优先级。

说明:

四类运算符由高到低的顺序依次为:算术运算符、连接运算符、关系运算符、逻辑运算符。

算术运算符由高到低的顺序依次为:^(幂)、*(乘)或/(除)、\(整除)、Mod(取模)、+(加)或-(减)。

同一表达式中多次使用同一个算术运算符时,按从左到右的顺序运算。

同一表达式中多个关系运算符,按从左到右的顺序运算。

同一表达式中多次使用同一逻辑运算符时,按从左到右的顺序运算。

如果想改变运算符的优先顺序,可以在表达式中使用()或[]。

赋值运算符

VBA使用等号(=)作为赋值运算符,用于将表达式的结果赋给变量。通常,接受结果的变量位于赋值运算符(=)的左侧,表达式位于赋值运算符的右侧。通过赋值运算符将右侧表达式的结果赋值给左侧的变量。赋值运算符可以修改变量的值。

下所示为一些简单的赋值示例。

前面我们过,可以通过VBA来改变对象属性值,因此,也可以将表达式的结果赋值给对象的属性。下面是一些示例:

Range(“A1”).Value = 100

该语句在单元格A1中输入数据100。

Range(“A2”).Value = “工作清单”

该语句在单元格A2中输入文本“工作清单”。

ActiveCell.Interior.Color = vbYellow

该语句将当前单元格的背景色设置为黄色。

注意:不要将赋值运算符与关系运算符中的“=”混淆,要在不同的表达式中区分“=”是赋值运算符还是等于运算符。

扫描二维码推送至手机访问。

版权声明:本文章来源于互联网,由八酷网收集发布,如需转载请注明出处。

本文链接:https://www.i8ku.com/2021/39506.html

分享给朋友:

相关文章

Excel表格怎么间隔行[列]插入表头和表尾数据?方方格子教你快速操作

Excel表格怎么间隔行[列]插入表头和表尾数据?方方格子教你快速操作

  Excel表格怎么间隔行[列]插入表头和表尾数据?相信非常多的用户都有遇到过,需要在Excel表格中批量的间隔行插入表头或者是数据,那么具体需要怎么操作呢?下面小编就为大家介绍一下...

excel条件格式:高亮显示你要查看的商品

excel条件格式:高亮显示你要查看的商品

有朋友留言: “ 我的数据很多,里面有多种不同商品,核对数据费眼力,能不能实现我选哪种商品,哪种商品就高亮显示?” 示例结果如下: 其实这个方法很简单:条件格式。 方法实现 1、选中数据,【开始】——【条件格式】——【...

Excel中怎么限制数据长度

Excel中怎么限制数据长度

  我们办公使用Excel表格的时候,经常会输入各种各样的数据,类似于电话号码、身份证号等数据。为了保证数字的准确性,我们得限制数据的长度。接下来就让我们来学习一下Excel中是如何限...

lookup函数的第3个参数,这次会让你大吃一惊!

lookup函数的第3个参数,这次会让你大吃一惊!

如果想获取一行最后一个非空数字,可以用lookup函数实现 =LOOKUP(9^9,C2:K2) 但如果想获取倒数第3个数字呢?估计你一时还真找不到简便的方法。别说用offset+count,因为它遇到空格就熄火了。...

剔除0值排名次,excel升序降序随你来

剔除0值排名次,excel升序降序随你来

有一位教师朋友问我:如果成绩为0不参加排名次,怎么写公式? 这种0值不参加排名次的情况,老师们是经常遇到的,那今天就 如何来解决,算是送个天下教师同仁的一份小小礼物吧。 示例数据与结果: 排序函数 rank函数: 语法...

经济实惠的Rank函数,让你嗨的飞起来!

经济实惠的Rank函数,让你嗨的飞起来!

Excel里的排名操作看似很简单,但其实其中有很多我们不知道的小“秘密”,掌握了这些小技巧,让你在用Excel排名的时候速度快的飞起,方便快捷,心情也嗨得飞起来!我们对它进行节选并独家呈现给各位,此次带来的是数据筛选的详...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。