提取数值的最高境界

一、题目要求

根据A列的内容,把各个数值提取出来放在B,C,D,E列

二、动画效果

三、公式截图

四、公式

=提($A2,COLUMN(A1))

五、公式解释

  • “提"是用vba加正则表达式自定义的一个函数

  • “提”这个函数两个参数,第1参数要处理的文本;第2参数显示第几个结果

  • 提取数值和提取字符最高境界就是vba加正则表达式,就是你还再难,再复杂,用正则那些都浮云了,有的是函数无法实现的,当然,能现有的函数功能做出来,函数水平已是顶尖水平了

六、所有vba编程代码

Option Explicit
Function 提(Rg As Range, x)
    Dim Reg, Mat '定义相关的变量
    Set Reg = CreateObject("Vbscript.RegExp") '引用正则表达式外部对象
    With Reg
        .Global = True '贪婪
        .Pattern = "\d+\.?\d*" '匹配一串数字或者一串带小数点的数字
    End With
    Set Mat = Reg.Execute(Rg) '把匹配的全部结果赋值给mat
    If x <= Mat.Count Then '如果x的值小于等于匹配结果总数,那么
        提 = Mat(x - 1) '把结果赋给函数名“提”
    Else
        提 = "" '否则函数“提”为空
    End If
End Function

七、操作方法

  • 在工作表中像我这样输入原始数据,如果你的数据不一样,代码要作修改。

  • 复制上面的代码

  • 快捷键Alt+F11打开vbe后台→插入→模块→把代码粘贴进去

  • 然后像动画一样在工作表里输入函数

(0)

相关推荐