Excel VBA: 提取文本中的数字包括小数点
时间: 2024-09-20 17:07:34 浏览: 50
在Excel VBA中,你可以使用`Split`函数结合`IsNumeric`检查来提取文本中的所有数字,包括小数点。假设你有一个字符串变量`strText`,下面是一个简单的示例:
```vba
Sub ExtractNumbersFromText()
Dim strText As String, arrText() As Variant, i As Long, num As Double
Dim isNumber As Boolean
strText = "This text contains numbers like 123.45 and more"
' 将文本分割成数组,只保留数字和小数点
arrText = Split(strText, "[^0-9.]")
' 遍历数组,对每个元素判断是否为数字
For i = 0 To UBound(arrText)
isNumber = True ' 假设初始时每个字符可能是数字
On Error Resume Next ' 忽略转换错误
num = CDbl(arrText(i)) ' 尝试将其转换为Double
On Error GoTo 0 ' 恢复默认错误处理
' 如果转换成功,说明是数字
If Not IsError(num) Then
Debug.Print num ' 输出数字
Else
' 如果不是数字,可能是小数点,也打印出来
If arrText(i) = "." Then
Debug.Print "."
Else
isNumber = False ' 否则标记为非数字
End If
End If
Next i
End Sub
```
在这个例子中,`CDbl`尝试将字符转换为双精度浮点数,如果字符不是数字就会触发错误,我们使用`On Error Resume Next`来捕获这个错误,如果不是数字就打印一个小数点`."`。
阅读全文