
当提取Excel单元格中的数字时,规则的数据可以使用提取函数或者快捷键,而对于那些不规则的数据,使用VBA(Visual Basic for Applications)可以轻松实现。
接下来,小兔将分享vba提取单元格中的数字的步骤,希望能帮到正在备受困扰的你。

假设有一个包含文本和数字混合的Excel表格,我们希望提取这些单元格中的数字,以便进行进一步的数据分析或处理。
01 启动VBA编辑器
打开要处理的Excel文件,按下Alt + F11快捷键,或者依次点击【开发工具】—【Visual Basic】,启动VBA编辑器。

02 插入新模块
在VBA编辑器中,点击“插入”菜单,然后选择“模块”,或者右键点击左侧的任意模块,选择“插入”,点击“模块”,两种方式来插入新模块。

03 编写VBA代码
在新模块中,输入以下VBA代码:
Function 提取数字(cellText As String) As Double
Dim i As Integer
Dim numStr As String
Dim result As Double
numStr = ""
' 循环遍历单元格文本
For i = 1 To Len(cellText)
' 判断字符是否为数字或小数点
If IsNumeric(Mid(cellText, i, 1)) Or Mid(cellText, i, 1) = "." Then
numStr = numStr & Mid(cellText, i, 1)
End If
Next i
' 将提取的数字转换为双精度浮点数
If Len(numStr) > 0 Then
result = CDbl(numStr)
Else
result = 0
End If
提取数字 = result
End Function

04 保存并关闭VBA
保存并关闭VBA编辑器,保存你的VBA项目并关闭VBA编辑器。
返回到Excel工作表,使用刚写下的自定义函数,就能提取数字了。
这段代码会生成一个自定义函数,在我们想要提取数字的表格中,空白单元格处,输入以下公式:`=提取数字(C4)`,其中C4是包含混合文本和数字的单元格引用。按Enter键,即可看到提取出的数字。


拓展:代码释义
这段代码定义了一个名为"提取数字"的函数,接受一个字符串参数“cellText",并返回一个双精度浮点数。
函数首先声明了几个变量:i用于循环计数,numStr用于存储提取出的数字字符串,result用于存储最终的结果。
然后通过一个循环遍历输入的字符串,逐个字符检查是否为数字或小数点,并将数字字符连接起来形成一个数字字符串"numStr"。
接着,将这个数字字符串转换为双精度浮点数"result"。最后,将"result"作为函数的返回值,即提取出的数字。
通过以上步骤,我们可以轻松地使用VBA提取Excel单元格中的数字,并将其用于后续的数据分析和处理。若有疑问,或者分享您的经验,欢迎在下方的评论区留言哦~