Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

lupine22 Профи (556), закрыт 12 лет назад
Например: asd(er)ghj(nm)gfyur(rtd)
удалить: er nm rtd
Если можно подробнее расписать всё. Заранее благодарна.
Лучший ответ
Алексей Матевосов (AlexM) Просветленный (27392) 12 лет назад
Еще парочка бесплатных.
Первый дает - 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
Остальные ответы
Александр Ярушин Мастер (1373) 12 лет назад
пиши в асю 612085834 помогу бесплатно
⎛=•D-mon55•=⎞ Мыслитель (5374) 12 лет назад
Пожалуйста! :)



За труды возьму 30 руб на телефон.
neJames neBond Мастер (1249) 12 лет назад
А вот бесплатный вариант )

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
Похожие вопросы