ZlydenGL
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Если без регекспа, то можно так: Код: If Instr(1, Cells(I,J), "(", vbTextCompare)>0 Then RemoveComment(Cells(I,J), "(") ElseIf Instr(1, Cells(I,J), "[", vbTextCompare)>0 Then RemoveComment(Cells(I,J), "[") ElseIf Instr(1, Cells(I,J), "{", vbTextCompare)>0 Then RemoveComment(Cells(I,J), "{") End If Private Function RemoveComment(MyStr As String, Start_Symbol as String) As String Dim Start As long, Finish As Long Start = Instr(1, MyStr, Start_Symbol, vbTextCompare) If Start_Symbol = "(" Then Finish = Instr(Start + 1, MyStr, ")", vbTextCompare) Else Finish = Instr(Start + 1, MyStr, Chr(Asc(Start_Symbol)+2), vbTextCompare) End If If Finish > Start Then RemoveComment = Left(MyStr, Start-1) & right(MyStr, Len(MyStr) - Finish + 1) Else RemoveComment = MyStr End If End Function | Добавлено: Писал на коленке, поэтому отладке текст подлежит в обязательном порядке Добавлено: Чтоб совсем красиво было можно перед Код: добавить такой вот демократизатор: Код: RemoveComment = Replace(Trim(RemoveComment), " ", " ") | То бишь минус пробелы в начале/конце и минус двойные пробелы в самом тексте Добавлено: Слегка исправил текст процедуры для нормальной обработки закрывающейся скобки.
---------- Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор |
| Всего записей: 4293 | Зарегистр. 22-06-2002 | Отправлено: 15:58 21-04-2011 | Исправлено: ZlydenGL, 08:35 26-04-2011 |
|