Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2012, 17:16   #1
SweetOpium
Пользователь
 
Аватар для SweetOpium
 
Регистрация: 08.05.2008
Сообщений: 42
По умолчанию Удалить все ненужные символы

Добрый день, есть несколько тысяч строк, в которых есть различные знаки препинания (? \ ! , * - и тд)
Пример:
18 стальных колес: Мужская работа
1C: Познавательная коллекция. Поиграем в сказку! Пушкин А.С. "Сказка о золотом петушке"
24/7 Business English. Часть 1

как автоматически удалить все эти знаки?

И еще вопрос, есть данные в скобках, как убрать всю информацию в скобках вмести со скобками?
SweetOpium вне форума Ответить с цитированием
Старый 09.07.2012, 17:26   #2
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Если удалять надо на месте, то:
запишите макрорекордером удаление ненужных знаков

По второму вопросу:
Ctrl+H
Найти: (*)
Заменить: оставляем пусто
Заменить все
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 09.07.2012, 17:28   #3
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Символы можно удалить так:
Код:
Sub Replace_Trash()
    Dim avArr(), lr As Long, lc As Long
    If Selection.Count = 1 Then
        ReDim avArr(1, 1): avArr(1, 1) = Selection.Value
    Else
        avArr = Selection.Value
    End If
    For lr = 1 To UBound(avArr, 1)
        For lc = 1 To UBound(avArr, 2)
            avArr(lr, lc) = RepSymb(avArr(lr, lc))
        Next lc
    Next lr
    If Selection.Count = 1 Then
        Selection.Value = avArr(1, 1)
    Else
        Selection.Value = avArr
    End If
End Sub
Function RepSymb(ByVal sTxt As String)
    Dim objRegExp As Object
    Set objRegExp = CreateObject("VBScript.RegExp")
    objRegExp.Global = True: objRegExp.IgnoreCase = True
    objRegExp.Pattern = "[:\-/?!\*\<\>\|\'$""""]"
    RepSymb = objRegExp.Replace(sTxt, "")
End Function
Выделяете нужные ячейки и запускаете код.
Изменять список символов для замены здесь: objRegExp.Pattern = "[:\-/?!\*\<\>\|\'$""""]"
Спец.символы(типа левого слеша) надо записывать, ставя перед ними левый слеш.

По скобкам: выделяете нужные ячейки, Ctrl+H.
Найти: (*)
Заменить на: оставляете пустым

Параметры: снять галку с Ячейка целиком.
Заменить все
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 10.07.2012, 11:45   #4
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Код:
Function RepSymb(ByVal sTxt As String)
    Static objRegExp As Object
    If objRegExp Is Nothing Then
        Set objRegExp = CreateObject("VBScript.RegExp")
        objRegExp.IgnoreCase = True ' видимо задел на будущее )
        objRegExp.Global = True
        objRegExp.Pattern = "[-:/?!*<>|'$""]" ' не проверял
    End If
    RepSymb = objRegExp.Replace(sTxt, "")
End Function
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 01.03.2015, 00:29   #5
AlexDr
Пользователь
 
Регистрация: 28.01.2012
Сообщений: 14
По умолчанию

Мне тоже нужно удалить квадратные скобки со всеми знаками внутри.
Нужен макрос для MS Word.
ПРимер:
[3]....[6]....[45]....[76] и т.д.

Последний раз редактировалось AlexDr; 01.03.2015 в 00:32.
AlexDr вне форума Ответить с цитированием
Старый 01.03.2015, 00:47   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от AlexDr Посмотреть сообщение
Нужен макрос для MS Word.
Microsoft Office и VBA > Microsoft Office Excel
Идите на http://www.programmersforum.ru/forumdisplay.php?f=19
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 01.03.2015, 01:03   #7
AlexDr
Пользователь
 
Регистрация: 28.01.2012
Сообщений: 14
По умолчанию

Я опять поторопился (как только спрошу, обязательно найду ответ сам).
Сам написал простейший макрос - работает.
Работает пока только с числам от 0 до 99.
Удаляются квадратные скобки и числа внутри них.
Вопрос снят.

Последний раз редактировалось AlexDr; 01.03.2015 в 01:06.
AlexDr вне форума Ответить с цитированием
Старый 01.03.2015, 01:24   #8
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Макрос не нужен: Ctrl+H, заменить [[]*[]] на пусто, Подстановочные знаки.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 01.03.2015 в 01:30.
Казанский вне форума Ответить с цитированием
Старый 03.03.2015, 17:37   #9
AlexDr
Пользователь
 
Регистрация: 28.01.2012
Сообщений: 14
По умолчанию

Спасибо, не знал. Попробую.
AlexDr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить все символы между первой и второй двокрапкой. Wild_klas Помощь студентам 3 20.11.2010 21:57
Удалить в предложении все слова, имеющие символы цифр In4ekk Общие вопросы C/C++ 0 19.10.2010 14:10
Удалить из строки все символы типа #10 #9 и т.д. TwiX Общие вопросы Delphi 10 01.12.2009 19:21
удалить в строке все одинаковые символы Михаил70 Помощь студентам 5 09.09.2009 18:35
как из строки ТМемо удалить ненужные символы MixanMM Общие вопросы Delphi 3 10.06.2009 13:49