Если бы у меня был этот столбец:
ColA
-----
NUMBER(8,3)
NUMBER(20)
Мне нужна функция VBA, которая должна работать (обратите внимание, что эти начальная и конечная строка будут появляться в ячейке только один раз):
extract_val(ячейка, start_str, end_str)
т.е.extract_val (A1, "(", ")") и выдайте результаты:
8,3
20
Мне нужно использовать эту функцию только в другом коде vba, а не в виде формулы на листе.
ОБНОВЛЕНИЕ (благодаря ответу я остановился на:)
---------------------------
Public Function extract_value(str As String) As String
Dim openPos As Integer
Dim closePos As Integer
Dim midBit As String
On Error Resume Next
openPos = InStr(str, "(")
On Error Resume Next
closePos = InStr(str, ")")
On Error Resume Next
midBit = mid(str, openPos + 1, closePos - openPos - 1)
If openPos <> 0 And Len(midBit) > 0 Then
extract_value = midBit
Else
extract_value = "F"
End If
End Function
Public Sub test_value()
MsgBox extract_value("NUMBER(9)")
End Sub