VBA操作VBA——提取数字
时间:2022-07-22
本文章向大家介绍VBA操作VBA——提取数字,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
会使用Excel的人都知道数字和文本是应该分开列来存储的,可是总是会碰上一些人仅仅是把Excel当作制作表格的一个简单工具,至于使用函数进行数据处理是根本不会的!
甚至有些人根本就不需要运算,直接拿Word来制作表格的,仅仅是为了排版好看而已。
碰上这种情况,对于要使用Excel进行数据处理的人来说,真是比较痛苦的。把数字和文本写到一个单元格里的个人工作上还是比较常见的,所以把数字分离出来就需要经常来做了。
对于会使用VBA的人来说,一个一个的手动去复制肯定是受不了的,那么来看看使用VBA如何快速处理这种情况:
首先在customUI.xml的menu id="rbmenuNumber"中增加代码:
<button id="rbbtnGetNum" label="提取数字" onAction="rbbtnGetNum"/>
回调函数:
Sub rbbtnGetNum(control As IRibbonControl)
Call MRange.GetNum
End Sub
函数实现:
Sub GetNum()
Dim selectRng As Range
Dim arr As Variant
Dim i As Long, j As Long
Dim rngout As Range
'确保选中的是单元格
If TypeName(Selection) = "Range" Then
Set selectRng = Selection
If selectRng.Areas.Count > 1 Then
MsgBox "未处理多重区域情况"
Exit Sub
End If
On Error Resume Next
'输出单元格默认是所选单元格的右边一列
Set rngout = Application.InputBox("请选择输出的起始单元格,范围程序会自动扩展并覆盖原单元格内容。", Default:=selectRng.Range("A1").Offset(0, 1).Address, Type:=8)
On Error GoTo 0
If rngout Is Nothing Then Exit Sub
If selectRng.Cells.Count = 1 Then
rngout.Value = FGetnum(VBA.CStr(selectRng.Value))
Else
arr = selectRng.Value
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
arr(i, j) = FGetnum(VBA.CStr(arr(i, j)))
Next
Next
rngout.Resize(i - 1, j - 1).Value = arr
End If
End If
Set selectRng = Nothing
End Sub
Function FGetnum(str As String) As Double
Dim i As Long
For i = 1 To VBA.Len(str)
'找到第一个是数字的位置
If VBA.IsNumeric(VBA.Mid$(str, i, 1)) Then
'使用Val函数转换
FGetnum = VBA.Val(VBA.Mid$(str, i))
Exit Function
End If
Next
End Function
程序主要是使用了内置的Val函数,只要找到首个出现数字的位置,提取这个数字之后的所有文本,用Val函数进行转换。
程序能处理多种情况,但是仅仅提取首次出现的一块数字。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法