提取数值的最高境界
一、题目要求
根据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)