Другие языки программирования и технологии

ПОМОГИТЕ ПОЖАЛУЙСТА! задачка VBA. удалить все символы, стоящие между круглыми скобками.

Например: asd(er)ghj(nm)gfyur(rtd)
удалить: er nm rtd
Если можно подробнее расписать всё. Заранее благодарна.
Еще парочка бесплатных.
Первый дает - asdghjgfyur, а второй - asd()ghj()gfyur()
Sub Macros1()
Dim stroka As String
Dim perv_skobka As Integer
Dim vtor_skobka As Integer
stroka = "asd(er)ghj(nm)gfyur(rtd)" 'строка исходная
Do
perv_skobka = InStr(1, stroka, "(") 'позиция открывающей скобки
vtor_skobka = InStr(1, stroka, ")") 'позиция закрывающей скобки
If perv_skobka = 0 Or vtor_skobka = 0 Then Exit Do 'если нет скобок заканчиваем цикл
stroka = Mid(stroka, 1, perv_skobka - 1) & Mid(stroka, vtor_skobka + 1) 'создаем строку без скобок и их содержимого
Loop
MsgBox stroka ' вывод новой строки
End Sub

Sub Macros2()
Dim stroka As String
Dim perv_skobka As Integer
Dim vtor_skobka As Integer
stroka = "asd(er)ghj(nm)gfyur(rtd)" 'строка исходная
Do
perv_skobka = InStr(perv_skobka + 1, stroka, "(") 'позиция открывающей скобки
vtor_skobka = InStr(vtor_skobka + 1, stroka, ")") 'позиция закрывающей скобки
If perv_skobka = 0 Or vtor_skobka = 0 Then Exit Do
stroka = Mid(stroka, 1, perv_skobka) & Mid(stroka, vtor_skobka) 'создаем строку без содержимого в скобках
Loop
MsgBox stroka ' вывод новой строки
End Sub
ГС
Геннадий Сорокин
27 337
Лучший ответ
Пожалуйста! :)



За труды возьму 30 руб на телефон.
Ерхан Кудерин
Ерхан Кудерин
5 374
пиши в асю 612085834 помогу бесплатно
DW
Danik White
1 316
А вот бесплатный вариант )

Sub parse()
Dim flag As Boolean
Dim mystr As String
Dim cleanstr As String
Dim symbol As String * 1
Dim i As Integer

flag = True
mystr = InputBox("Строка для разбора", "Парсер", "asd(er)ghj(nm)gfyur(rtd)")
For i = 1 To Len(mystr) 'от первой до последней буквы
symbol = Mid(mystr, i, 1) 'взяли одну букву
If symbol = "(" Then 'если это открывающая скобка
flag = False 'буквы не берем в новую строчку
cleanstr = cleanstr + symbol 'а саму скобочку все-таки запишем
End If
If symbol = ")" Then flag = True 'если скобка закрывающая -у
If flag = True Then cleanstr = cleanstr + symbol 'то пишем буковки к результату
Next
MsgBox ("Было: " + mystr + vbCrLf + "Стало: " + cleanstr) 'показали ответ
End Sub