Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3155|回复: 3

求教有关and与or的用法

[复制链接]
发表于 2013-10-19 10:30 | 显示全部楼层 |阅读模式
在VBA中我们一般会使用and与or运算符进行逻辑运算,返回true或是false
语法:
       res=bln1 and bln2    ;res=bln1 or bln2
这种用法好理解,本人疑惑的是假如这里的bln1与bln2不是逻辑型数据时,返回的结果是否有规律可循?
请哪位老师能帮忙答疑解惑!

VB中And与or用法.rar

7.18 KB, 下载次数: 2

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2013-10-19 10:47 | 显示全部楼层
附件中有测试的代码,有空的老师帮忙看看?
回复

使用道具 举报

发表于 2013-10-19 10:55 | 显示全部楼层
VBA中逻辑运算符对数值表达式的计算规则 被称为“逐位比较”规则,指的是将数值转换为二进制中的位,然后按照具体逻辑运算符的性质进行右对齐逐位比较。

(一)or 逻辑运算符

or逻辑运算符对数值表达式的计算(结果不小于两数中最大值)
具体运算过程:
1 or 2
转换为二进制:0001 or 0010  (从末位开始比较<右对齐比较>,遵守or规则,见1则为真(1))
比较后:0011
转换为十进制:3

文本型数字 与 数值型数字 比较方法类似

日期型数值 实际是5位数数字,转换为 5位数数字比较
举例:#10/20/2013# or #10/21/2013#

#10/20/2013#  转为数字为41567,:#10/21/2013#  转为数字为 41568

转换为二进制:1010001001011111  or 1010001001100000
比较后:1010001001111111

转换为十进制:41599 再转换为日期 为  #11/21/2013#

(二)and逻辑预算付

and或其他逻辑运算符对数值运算规则 同样是按照“逐位比较”规则进行
用and运算符再举例(结果不大于两数中最大值)

3 and 2
转换为二进制:0011 and 0010 (从末位开始比较<右对齐比较>,遵守and规则,见0则为假(0))
比较后:0010
转换为十进制:2

文本型数字 与 数值型数字 比较方法类似

日期型数值 实际是5位数数字,转换为 5位数数字比较
举例:#11/21/2013# or #10/22/2013#

#10/20/2013#  转为数字为41599,:#10/22/2013#  转为数字为 41569

转换为二进制:1010001001111111  and 1010001001100001
比较后:1010001001100001

转换为十进制:41569 再转换为日期 为  #10/22/2013#



回复

使用道具 举报

 楼主| 发表于 2013-10-19 11:01 | 显示全部楼层
感谢帅哥指点,谢谢?收藏!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 03:31 , Processed in 0.182189 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表