美文网首页VBA分享专栏精进Excelexcel的一些小技巧教程
Excel VBA之函数篇-3.21简易数字提取离法 确定过场景

Excel VBA之函数篇-3.21简易数字提取离法 确定过场景

作者: Excel和VBA | 来源:发表于2021-02-06 10:56 被阅读0次

前景提要

最近有很多的人联系小编,说希望小编讲解一些关于数据分解提取的知识,小编也是很早就答应会分享这些方面的知识了,但是小编有一个强迫症的习惯,我喜欢按照自己的思路和计划来写,不然我都会乱了,哈哈,还请大家原谅小编这个不合格的分享者,今天按照计划终于来到了其中一个知识点,能够处理一些比较简单的文本数字分离了。

为什么说是比较简单的分离呢?因为我们现在还处在函数篇,所有的运用都是依赖于函数进行的,所以我们的使用还是尽量使用函数来完成,虽然这样能够实现的功能比较的局限,但是大家能够更加清楚的了解到每个函数的意义和使用场景,这对于大家今后再面对更加复杂的结构的时候,才能够得心应手。

函数说明

今天要说的这个函数是val函数,三个字母非常的简单,也代表了他的运用场景比较的简单,并不适合用来处理特别复杂的数据结构,他主要适应于处理数字+文字,数字+英文,这样的组合的形式,只有一个要求,就是必须是数字在前的,其他的中文或者是英文字符都必须在后面的,这样他才能够将数字提取出来,我们来看看代码

场景说明

这里依然假设是我们各个不同的网络商城的订单号,从下图中我们可以看出来,每个订单号的结构各不相同(我编的),我们现在希望将其中的数字提取出来,作为我们登记明细的唯一标注,那么我们要如何实现呢?


image.png

代码区

Sub test()

Dim i%

For i = 2 To 8

    Cells(i, 7).Offset(0, 1) = Val(Cells(i, 7))

Next i

End Sub

来看看效果


image.png

有些成功的提取出了数字,但是有些并没有成功提取出来,为什么会这样呢?别急,听我下面慢慢讲解。

代码解析

为什么上面会出现一些完全不同的结果呢?我们来一个个的分析下,前面我们已经说过,val的使用场景是数字在前,中文或者英文是在后面的,val能够提取出来的就是中文或者英文前面的这些数字,我们来看看例子,第二行66哈哈,数字+中文的组合,val应该能够将汉字前面的数字,即66提取出来,后面的结果也正好是这样的,再来看看第3个例子,66aa,数字+英文的组合,也正好能够提取出英文前面的数字

在看看其他的一些反常的情况,66aa66,数字+英文+数字的组合,val能提取出来哪部分呢?很明显,它只能够提取出来前面的一部分,即66,无法提取出来后面的一部分,我们用下面一行的例子来验证,val提去出来了G前面的667这三个数字,但是他没有办法提取出G后面的7

而最后的一个例子和最开始的一个例子,结构并不是数字开头的,所以val并不适用于这样的场景,自然提取出来的结果都是0.

综合上面的几个不同的例子,大家是否能够理解val函数的使用场景和范围呢?

相关文章

网友评论

    本文标题:Excel VBA之函数篇-3.21简易数字提取离法 确定过场景

    本文链接:https://www.haomeiwen.com/subject/veontltx.html