Не уверен, почему мой ответ понизили, оставьте комментарий, дающий мне знать, почему это произошло. Я знаю, что предыдущие два ответа уже помогли другим (особенно мне), и я помогаю находить символы с помощью цикла в случае, если символы находятся дальше в строке. Спасибо

бы у меня был этот столбец:

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

Ответы на вопрос(3)

Ваш ответ на вопрос