找回密码
 会员注册
查看: 4|回复: 0

vba判断数据是否是数字字母 – vba从数据库中选择数据

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71248
发表于 7 天前 | 显示全部楼层 |阅读模式
今天讲的这个课题对于函数有些难度,但仍是遵循我的思想,写函数就是在写程序,其实今天的这个函数难度要高于一般的VBA,对于VBA初学者,甚至是可以达到中级水平(可以用VBA操作数据库)的人员来说不一定能读懂,如有谁可以一次能读懂,我将加入VBA人才库,哈哈。 言归正传,今天讲如果用组合函数判断一个单元格输入的是否全部是字母。先看下面的截图 在A列中,有一系列的字符或组合,要判断哪些全部是字母,我们录入了B列的公式,返回的结果是C列的值。 这里我公布了B列的公式,但截图的图表中有一点没有完全显示出来,截图的光标选中的B2的单元格,我们看上面的编辑栏,会发现公式的首位是加了一个{}的符号,这就说明,这个公式是数组公式。 下面是B2公式的复制: ={AND(N(CODE(RIGHT(UPPER(A2),ROW(INDIRECT("1:"&LEN(A2)))))>{64,90})={1,0})} 好了,到这里我们称之为第一步,有谁在第一步能看懂了这个公式?请举手。不过没关系我们下面会先简单的讲解一下这个公式。 第二步,公式的简要说明。这个例子的公式是一个数组公式,涉及到的函数和公式应用较多,简单介绍下公式的原理:首先把字符串中所有字符都用Upper函数转为大写字母(有利于判断),然后用right函数将整个字符串依次分段,再用code函数将分段后的首字符代码取出(分段后的首字符就是字符串中的每一个字符),最后判断代码是否在65~90的区间内(大写英文字母的区间)。这个例子让大家了解到,code函数经过与其他函数的组合可以突破返回首字符代码的限制,可以有更广泛的应用。 到第二步这里有谁能完全读懂上面的公式了?请举手。 如果你到这里可以轻松的完全的读懂上面的公式,那么你的函数水平可以在中级以上了,写的VBA程序基本可以操作数据库了。但相信很多人还是一团雾水,或者似是而非地看懂了。 下面看我的第三部讲解: ={AND(N(CODE(RIGHT(UPPER(A2),ROW(INDIRECT("1:"&LEN(A2)))))>{64,90})={1,0})} 其实这个组合函数和程序的写法一样的,甚至还更难。 1 首先要计算的是UPPER(A2)=123QWE,当然我这里没有给出小写的例子。 2求LEN(A2)=6,得到下一阶的公式:INDIRECT("1:"&6) 进而化简这个值为INDIRECT("1:6")。 3 有了上面的值进而得到下阶的公式:ROW($16),所以会得到下一阶公式RIGHT("123QWE",{ 1;2;3;4;5;6})。 4 从上面公式得到,下阶的公式:CODE({"E"; "WE"; "QWE"; "3QWE"; "23QWE"; "123QWE"}),值为{69;87;81;51;50;49} 5 上面的值进而会转化为下阶的公式{69;87;81;51;50;49}>{64,90}。这是对于数组的比较,而得到公式的返回值:{TURE,FALSE; TURE,FALSE; TURE,FALSE; FALSE,FALSE; FALSE,FALSE; FALSE,FALSE} 6 从上阶的值得到下阶的公式 N({TURE,FALSE; TURE,FALSE; TURE,FALSE; FALSE,FALSE; FALSE,FALSE; FALSE,FALSE})。进而达到值{1,0;1,0;1,0;0,0;0,0;0,0} 7 从上阶的值得到下阶的公式{1,0;1,0;1,0;0,0;0,0;0,0}={1,0},进而得到公式的返回值{TURE,TURE; TURE,TURE; TURE,TURE;FALSE,TURE;FALSE,TURE ;FALSE,TURE } 8 从上阶的值得到下阶的公式 AND({TURE,TURE;TURE,TURE; TURE,TURE;FALSE,TURE;FALSE,TURE ;FALSE,TURE },而得到公式的返回值FALSE)。 经过了上面的8个关键步骤的计算,我们得到了FALSE的结果,到这里,应该大多数的朋友都能看懂上面的公式了。如果还没有看懂,赶快再复习一下数组的运算,N函数的用法,及基本的RIGHT函数的用法了。 今日内容回向: 1 如何判断单元格中的字符串是否全是字母字符的思路是如何建立的。 2 CODE函数和CHAR函数的利用是否能熟练了? 3 是否看懂了上面的公式。 分享成果,随喜正能量  
回复

使用道具 举报

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

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 16:38 , Processed in 0.416804 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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