Один из способов это сделать - разделить входную строку запятыми, а затем пробел:
s = "N126(Total: 476.00 in, 119.0 sq.in, 1 cu.in, .003 lb)"
a1 = Split(s, ", ")
затем разделите интересующее вас поле на пробелы:
a2 = Split(a1(1), " ")
v = a2(0)
Более элегантный подход, особенно когда вы хотите извлечь несколько значений из строки, - это совпадение с регулярным выражением.
s = "N126(Total: 476.00 in, 119.0 sq.in, 1 cu.in, .003 lb)"
Set re = New RegExp
re.Pattern = "(\d+\.\d+) in, (\d+\.\d+) sq\.in, (\d+) cu\.in, (\.\d+) lb"
For Each m In re.Execute(s)
total = m.Submatches(0)
area = m.Submatches(1)
volume = m.Submatches(2)
weight = m.Submatches(3)
Next
WScript.Echo area
Или, если вы хотите использовать более общий подход:
s = "N126(Total: 476.00 in, 119.0 sq.in, 1 cu.in, .003 lb)"
Set re = New RegExp
re.Pattern = " ((?:\d*\.)?\d+) "
re.Global = True
For Each m In re.Execute(s)
WScript.Echo m.Submatches(0)
Next
Помните, что в любом случае извлеченные значения остаются строками. Если они нужны вам как числовые значения, вам нужно преобразовать их после извлечения, например, weight CDbl(m.Submatches(3))
.