Vba 从字符串中分离数字

Vba 从字符串中分离数字,vba,excel,split,Vba,Excel,Split,是将第二个数字与此字符串分开的任何简单方法(数字可能有太多数字): 并将其分配给variable2?我尝试了以下代码: temporary = split(variable) variable2 = temporary(4) 'Now i don't know how to separate i from "(" and "e" 下面是使用正则表达式返回字符串中第二个数字(或连续数字)的一种方法: Dim variable As String Dim variable2 As Long Di

是将第二个数字与此字符串分开的任何简单方法(数字可能有太多数字):

并将其分配给variable2?我尝试了以下代码:

temporary = split(variable)

variable2 = temporary(4) 'Now i don't know how to separate i from "(" and "e"

下面是使用正则表达式返回字符串中第二个数字(或连续数字)的一种方法:

Dim variable As String
Dim variable2 As Long
Dim RE As Object
variable = "Test +5 test (1e8+2)" 'in this case 1

Set RE = CreateObject("vbscript.regexp")
With RE
    .Pattern = "\D*\d\D*(\d+).*"
    variable2 = .Replace(variable, "$1")
End With

如果第一个数字也可以是多个数字,请将第一个\d更改为\d+

我假设
测试+5测试(1e8+2)
是一个字符串,因为您使用了拆分。
variable2=Mid(临时的(4),2,1)
能满足您的要求吗?如果没有,您需要澄清您的问题。@TonyDallimore在本例中variable2必须包含1。我没有检查您的代码。它应该是
临时的(3)
而不是
临时的(4)
Mid(临时(3),2,1)
提取
temporary(3)
的第二个字符,即“1”。
Dim variable As String
Dim variable2 As Long
Dim RE As Object
variable = "Test +5 test (1e8+2)" 'in this case 1

Set RE = CreateObject("vbscript.regexp")
With RE
    .Pattern = "\D*\d\D*(\d+).*"
    variable2 = .Replace(variable, "$1")
End With