ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2584|回复: 8

[求助] And arr3(i, 1) <> "" 这一句代表什么意思?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-14 15:20 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
老师们:If arr1(i, 1) <> "" And arr3(i, 1) <> "" Then 和   If arr3(i, 1) <> "" Then    的区别在哪里?    原先提取的数据开始第一个有空格,把If arr1(i, 1) <> "" And arr3(i, 1) <> "" Then  改为  If arr3(i, 1) <> "" Then  没有空格了--等于是把下面的提取结果统一上移了一格。那么它们还有那些区别?恳请大神们作一个详细解释。

TA的精华主题

TA的得分主题

发表于 2018-9-14 15:25 | 显示全部楼层
arr1 跟arr3,从目前楼主提供信息看,是两个数组,具体对应表格区域是什么,或者就是一个二维数组
无法获悉,所以不好进一步判断
另外两个if语句的条件明显不同的
所以建议楼主结合附件说明问题吧

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 16:02 | 显示全部楼层
liulang0808 发表于 2018-9-14 15:25
arr1 跟arr3,从目前楼主提供信息看,是两个数组,具体对应表格区域是什么,或者就是一个二维数组
无法获 ...

D列的公式需要完成对符合A列指定条件的B列不空的所有数据的提取。公式是:=SJTQ(数据区域,条件区域,条件1,条件2)
    但由于B列的数据区域上边有空格,D列公式提取符合条件的数据时,D5也出现了空格。

      代码里的  If arr1(i, 1) <> "" And arr3(i, 1) <> "" Then  改为  If arr3(i, 1) <> "" Then 就没有空格了。

麻烦老师就着下面的附件讲解一下它们的区别【里面有玫瑰红填充的代码就是修改的地方】:

提取符合条件的所有数据.zip (53.8 KB, 下载次数: 17)


TA的精华主题

TA的得分主题

发表于 2018-9-14 16:11 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 16:20 | 显示全部楼层
我是来讨说法的 发表于 2018-9-14 16:11
都37个主题了,好不知道and是并且的意思?

我原来主要是学函数公式的。对VBA算是刚入门。AND的含义我知道。
    主要是想不明白  arr1(i, 1) <> "" 在附件里代表什么?去掉 arr1(i, 1) <> "" 这一句,对自定义函数原有的运算规则有没有影响?

TA的精华主题

TA的得分主题

发表于 2018-9-14 16:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
If arr1(i, 1) <> "" And arr3(i, 1) <> "" Then      跟  If arr3(i, 1) <> "" Then
这两个区别很明显啊
If arr1(i, 1) <> "" And arr3(i, 1) <> "" Then需要满足两个条件,就是相当于i行的A,B两列都不能是空的,有一个是空白的就不可以
If arr3(i, 1) <> "" Then  仅仅是B列不是空,不过在A列没有空的条件下,这个就会等同于上面的。
但是如果A列有空白的,并且对应B列不是空白,这个就不起作用了

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-9-14 16:40 | 显示全部楼层
在你excel的公式中,arr1代表的是第一个参数,也就是B5:B2000这个区域,arr1(i,1),当i=1时,表示的就是A5单元格
arr3是第二参数,也就是A5:A2000的区域,arr3(i,1),当i=1时,表示的就是b5单元格

很显然,当i=1时,也就是excel的第5行
If arr1(i, 1) <> "" And arr3(i, 1) <> "" Then 不成立If arr3(i, 1) <> "" Then 成立




评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 16:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liulang0808 发表于 2018-9-14 16:23
If arr1(i, 1)  "" And arr3(i, 1)  "" Then      跟  If arr3(i, 1)  "" Then
这两个区别很明显啊
If ...

版主老师:还是不太明白。If arr1(i, 1) <> "" And arr3(i, 1) <> "" Then需要满足两个条件,就是相当于i行的A,B两列都不能是空的,有一个是空白的就不可以。按照此说,运行附件左边的代码If arr1(i, 1) <> "" And arr3(i, 1) <> "" Then   D5应该不显示空白啊!    可是改成If arr3(i, 1) <> "" Then  后似乎不严谨了,但D5却不再显示空白了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 16:46 | 显示全部楼层
我是来讨说法的 发表于 2018-9-14 16:40
在你excel的公式中,arr1代表的是第一个参数,也就是B5:B2000这个区域,arr1(i,1),当i=1时,表示的就是A5单 ...

还是有些懵懂。请老师解决我8楼的困惑。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-15 07:45 , Processed in 0.024889 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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