0、表格内容

A列 B列
手机2134
型号324
2135手机
325型号
2手机136
32型号6

1、Word法

1.1 提取非数字

遇事不决就去隔壁找Word,将表格A列内容复制到Word中,打开“替换”窗口,输入[0-9],点开“高级搜索”勾选“使用通配符”,点击全部替换,将替换好的内容再复制回Excel表格中。

1.2 提取数字

将表格A列内容复制到Word中,打开“替换”窗口,输入[!0-9],点开“高级搜索”勾选“使用通配符”,点击“全部替换”,将替换好的内容再复制回Excel表格中。

2、自定义函数法

按Alt+F11,打开VBA编辑器,选中工作薄右键插入模块,在代码窗口粘贴代码。

2.1 提取非数字

Function Extract_numbers(aa As Range)Dim n As Integer, i As Integer, temn = Len(aa.Value)For i = 1 To nIf IsNumeric(Application.Find(Mid(aa.Value, i, 1), "0123456789")) = False Thentem = tem & Mid(aa.Value, i, 1)End IfNextExtract_numbers = tem
End Function

在表格中输入对应公式

2.2 提取数字

Function Extract_Non_numbers(aa As Range)Dim n As Integer, i As Integer, temn = Len(aa.Value)For i = 1 To nIf IsNumeric(Application.Find(Mid(aa.Value, i, 1), "0123456789")) = True Thentem = tem & Mid(aa.Value, i, 1)End IfNextExtract_Non_numbers = tem
End Function

在表格中输入对应公式

3、宏程序法

按Alt+F11,打开VBA编辑器插入模块,在代码窗口中粘贴代码。
然后关闭VBA编辑器,返回Excel界面,然后按Alt+F8打开“宏”对话框,选择对应宏执行即可。

3.1 提取非数字

Sub extra_No()Dim d As Object, arr, brr, i&Dim sr As StringSet d = CreateObject("scripting.dictionary")Set regex = CreateObject("VBScript.RegExp")arr = [a1:a15]brr = [b1:b15]For i = 1 To UBound(brr)sr = Range("a" & i)With regex.Global = True.Pattern = "\d"'这里也可以写成.Pattern = "[\u4e00-\u9fa5]"Range("b" & i) = .Replace(sr, "")End WithWith [b1:b15].NumberFormat = "General"End WithNext
End Sub

3.2 提取数字

Sub extra_No()Dim d As Object, arr, brr, i&Dim sr As StringSet d = CreateObject("scripting.dictionary")Set regex = CreateObject("VBScript.RegExp")arr = [a1:a15]brr = [b1:b15]For i = 1 To UBound(brr)sr = Range("a" & i)With regex.Global = True.Pattern = "\D"Range("b" & i) = .Replace(sr, "")End WithWith [b1:b15].NumberFormat = "General"End WithNext
End Sub

参考:
他山之石——在VBA中使用正则表达式-Part2(Regular Expression)
提取一个单元格中的文本(非数字)-自定义函数

Excel VBA小程序03-快速提取单元格中的数字和非数字相关推荐

  1. Excel VBA小程序-如何快速将整个工作簿的公式转换为数值

    根据操作范围,这可以分为三种情况. ❶多工作表公式转数值 ❷多工作簿公式转数值 1.多工作表公式转数值 如果是将当前工作簿所有工作表的公式转换为数值,需要使用到VBA代码. Sub FunctionT ...

  2. Excel小技巧之快速填充单元格的几种快捷键

    1/6 打开Excel,准备好一些数据,教大家Excel小技巧之快速填充单元格的几种快捷键,如下图所示. 2/6 首先如果我们需要在一行中快速填充同样的信息,这些我们只需要在第一个单元格中输入要填充的 ...

  3. Excel 如何提取单元格中的多个数值

    Excel如何提取单元格中的部分文字或单元格中的数字,整理了Excel中所有的提取要求,写成了一个公式翻译工具,适应所有的文字组合方式. 支持以下提取方式,输入提取要求,自动生成Excel公式: A2 ...

  4. Excel中提取单元格中的部分内容或单元格中的数字公式大全(提取数字,提取前几位,提取指定文字之间的内容等等)

    Excel如何提取单元格中的部分文字或单元格中的数字 Excel如何提取单元格中的部分文字或单元格中的数字,整理了Excel中所有的提取要求,写成了一个公式翻译工具. 支持以下提取方式,输入提取要求, ...

  5. excel如何提取单元格中的数字

    在日常使用Excel时,常会碰到需要提取Excel单元格中数字的情况,如果单纯只是数字,那很简单,但对于文本数字混合的情况,如何提取单元格中的数字呢?本文就给大家详解提取Excel单元格中的数字的方法 ...

  6. Excel提取单元格中的数字

    1.给出数字的起始位置和长度.示例公式:=–mid(a1,5,3) 公式结果为提取A1单元格中从第5位开始的3个数字. 2.提取某特定字符串后的数字.示例公式:=-lookup(0,-mid(a1,f ...

  7. 单元格内多个姓名拆分成一列_快速拆分单元格中的多个姓名

    龙源期刊网 http://www.qikan.com.cn 快速拆分单元格中的多个姓名 作者:王志军 来源:<电脑知识与技术 · 经验技巧> 2018 年第 01 期 如图 1 所示,这里 ...

  8. Excel如何将数据复制到合并单元格中

    今天跟大家分享一下Excel如何将数据复制到合并单元格中 1.如下图我们想要将数据复制到合并单元格中 2.选择要复制的单元格区域 3.单击下图选项 4.单击[复制粘贴],[复制到合并区域] 5.在[粘 ...

  9. Excel VBA小程序 -批量合并和撤销合并单元格

    合并单元格之前要提前将数据列排序好,然后再复制以下代码,运行宏程序. 批量合并单元格 Sub RngMergeCondition() '批量合并单元格Dim rngUser As RangeDim r ...

最新文章

  1. saltstack 执行结果返回到mysql
  2. TimeSpan 时间间隔
  3. Softmax 函数及其作用(含推导)
  4. 谈谈2018年区块链大事件
  5. php数组转换编码,PHP数组转换编码类
  6. 《钢铁神兵》里的较量的数学题,都是什么级别的难题?
  7. 如何实现分布式 java_Redis中是如何实现分布式锁的?
  8. 期待!2019年春晚将成为科技盛宴:5G、4K都安排上了
  9. ant+testng 搭建
  10. python函数求导_python_exp
  11. 操作系统--系统引导程序
  12. 天池大数据竞赛——糖尿病遗传风险预测赛后总结(二)
  13. 区块链对人工智能的变革:去中心化将带来数据新范式
  14. 自定义 kubectl-plugin
  15. python“~”符号的用法
  16. kernel too old
  17. 20201114-三轴云台storm32 BGC HAKRC调试+
  18. Prometheus 监控进程的内存使用率 PromQL 多对一向量匹配
  19. 图像处理2:图像边缘检测(python+opencv)
  20. 苹果批Meta高额抽成行为:暴露了其虚伪面孔

热门文章

  1. Unity获取系统信息SystemInfo(CPU、显卡、操作系统等信息)
  2. 苹果手机使用技巧篇:教你完美使用好苹果手机的4个方法
  3. 用Python爬取斗鱼各区的主播信息,并制作热度排行榜
  4. python批量制作ppt_python批量将文件夹内所有PPT转化为PPTX
  5. oa系统需要的服务器配置,oa办公系统需要服务器配置
  6. springboot消费kafka Listener method could not be invoked with the incoming message
  7. Java—mysql缓存导致查询结果与数据库不一致
  8. JUnit测试提示 java.lang.Exception: No public static parameters method on class
  9. STM32C8T6+面板板+3只LED点亮流水灯
  10. linux字符串加引号,请问 命令行中写路径,加引号和不加有什么区别?