Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос обработки текстовых ячеек - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Макрос обработки текстовых ячеек
manimeiker Дата: Четверг, 24.12.2015, 07:39 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
%)

Что необходимо:
1. Макрос читает выделенные ячейки
2. если в ячейке есть символ "-", удалить его и все что после него.

Пример:
было: текст текст -текст после четрочки
стало: текст текст

(Решено):

[vba]
Код
Sub УдалениеПосЧерт()
Selection.Replace What:="-*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
[/vba]

3. Если текст в ячейке не начинается с кавычки, то поставить перед каждым словом "+".

Пример:
было: текст текст
стало: +текст +текст

(Решено):

[vba]
Код
Sub ПостПлюс()
Selection.Replace What:=" ", Replacement:=" +"
For Each c In Selection
c.Value = "+" & c.Value
Next c
End Sub
[/vba]

3. Если текст в ячейке напечатан в "кавычках", то заменить кавычки на квадратные скобки и привести к виду [текст]

Пример:
было: "текст текст"
стало: [текст текст]

Ни как не могу составить алгоритм в VBA

Ну и собственно самая главная задача заключается в том, чтобы все эти действия делал 1 макрос. Пример таблицы, которую он должен обрабатывать прилагается во вложении.

Очень прошу, помогите, голова кипит уже.
К сообщению приложен файл: 1111111.xlsx (8.5 Kb)


Сообщение отредактировал manimeiker - Четверг, 24.12.2015, 07:48
 
Ответить
Сообщение%)

Что необходимо:
1. Макрос читает выделенные ячейки
2. если в ячейке есть символ "-", удалить его и все что после него.

Пример:
было: текст текст -текст после четрочки
стало: текст текст

(Решено):

[vba]
Код
Sub УдалениеПосЧерт()
Selection.Replace What:="-*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
[/vba]

3. Если текст в ячейке не начинается с кавычки, то поставить перед каждым словом "+".

Пример:
было: текст текст
стало: +текст +текст

(Решено):

[vba]
Код
Sub ПостПлюс()
Selection.Replace What:=" ", Replacement:=" +"
For Each c In Selection
c.Value = "+" & c.Value
Next c
End Sub
[/vba]

3. Если текст в ячейке напечатан в "кавычках", то заменить кавычки на квадратные скобки и привести к виду [текст]

Пример:
было: "текст текст"
стало: [текст текст]

Ни как не могу составить алгоритм в VBA

Ну и собственно самая главная задача заключается в том, чтобы все эти действия делал 1 макрос. Пример таблицы, которую он должен обрабатывать прилагается во вложении.

Очень прошу, помогите, голова кипит уже.

Автор - manimeiker
Дата добавления - 24.12.2015 в 07:39
китин Дата: Четверг, 24.12.2015, 07:45 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
и вам Здравствуйте!!!
прилагается во вложении.
нет вложения :'(
[p.s.]вопрос явно про VBA создан в теме Вопросы про Excel :'(


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Четверг, 24.12.2015, 07:46
 
Ответить
Сообщениеи вам Здравствуйте!!!
прилагается во вложении.
нет вложения :'(
[p.s.]вопрос явно про VBA создан в теме Вопросы про Excel :'(

Автор - китин
Дата добавления - 24.12.2015 в 07:45
manimeiker Дата: Четверг, 24.12.2015, 07:46 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Нашел макрос замены кавычек на квадратные скобки, но он работет только в Word. Подскажите, можно ли как нибудь переделать его под Excel

[vba]
Код
Sub changeQuote()
'Замена прямых кавычек на парные кавычки (елочки)
Dim blnQuotes As Boolean
'запомнить пользовательскую установку
blnQuotes = Options.AutoFormatAsYouTypeReplaceQuotes
Options.AutoFormatAsYouTypeReplaceQuotes = False
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = """(*)"""
.Replacement.Text = "[\1]"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
'восстановить пользовательскую установку
Options.AutoFormatAsYouTypeReplaceQuotes = blnQuotes
End Sub
[/vba]


Сообщение отредактировал manimeiker - Четверг, 24.12.2015, 07:47
 
Ответить
СообщениеНашел макрос замены кавычек на квадратные скобки, но он работет только в Word. Подскажите, можно ли как нибудь переделать его под Excel

[vba]
Код
Sub changeQuote()
'Замена прямых кавычек на парные кавычки (елочки)
Dim blnQuotes As Boolean
'запомнить пользовательскую установку
blnQuotes = Options.AutoFormatAsYouTypeReplaceQuotes
Options.AutoFormatAsYouTypeReplaceQuotes = False
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = """(*)"""
.Replacement.Text = "[\1]"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
'восстановить пользовательскую установку
Options.AutoFormatAsYouTypeReplaceQuotes = blnQuotes
End Sub
[/vba]

Автор - manimeiker
Дата добавления - 24.12.2015 в 07:46
manimeiker Дата: Четверг, 24.12.2015, 07:49 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
китин, файл приложил, если есть возможность переместите тему пожалуйста
 
Ответить
Сообщениекитин, файл приложил, если есть возможность переместите тему пожалуйста

Автор - manimeiker
Дата добавления - 24.12.2015 в 07:49
китин Дата: Четверг, 24.12.2015, 08:02 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
переместите тему пожалуйста
Это к модераторам.
Макрос предложить не могу (слаб я в них) формулу могу какую никакую
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("""";A1));"+"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]");ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"))
К сообщению приложен файл: manimeiker.xlsx (9.3 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение
переместите тему пожалуйста
Это к модераторам.
Макрос предложить не могу (слаб я в них) формулу могу какую никакую
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("""";A1));"+"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]");ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"))

Автор - китин
Дата добавления - 24.12.2015 в 08:02
manimeiker Дата: Четверг, 24.12.2015, 08:17 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
китин, Огромное спасибо, формула работает, только "+" ставится лишь вначале ячейки, как сделать так чтобы где это необходимо "+" ставился перед каждым словом

Пример:
+чтобы +текст +в +ячейке +отображался +так
 
Ответить
Сообщениекитин, Огромное спасибо, формула работает, только "+" ставится лишь вначале ячейки, как сделать так чтобы где это необходимо "+" ставился перед каждым словом

Пример:
+чтобы +текст +в +ячейке +отображался +так

Автор - manimeiker
Дата добавления - 24.12.2015 в 08:17
китин Дата: Четверг, 24.12.2015, 08:23 | Сообщение № 7
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
тады вот так проверяйте
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("""";A1));"+"&ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"));" ";"+");ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"))
К сообщению приложен файл: manimeiker_new.xlsx (9.3 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Четверг, 24.12.2015, 08:24
 
Ответить
Сообщениетады вот так проверяйте
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("""";A1));"+"&ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"));" ";"+");ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"))

Автор - китин
Дата добавления - 24.12.2015 в 08:23
manimeiker Дата: Четверг, 24.12.2015, 08:30 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
китин, Вы Бог формул!!!
 
Ответить
Сообщениекитин, Вы Бог формул!!!

Автор - manimeiker
Дата добавления - 24.12.2015 в 08:30
китин Дата: Четверг, 24.12.2015, 08:32 | Сообщение № 9
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
[offtop] manimeiker, вы еще с БОГАМИ ФОРМУЛ не встречались.Они спят пока.


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение[offtop] manimeiker, вы еще с БОГАМИ ФОРМУЛ не встречались.Они спят пока.

Автор - китин
Дата добавления - 24.12.2015 в 08:32
Pelena Дата: Четверг, 24.12.2015, 09:14 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19524
Репутация: 4634 ±
Замечаний: ±

Excel 365 & Mac Excel
Немного короче
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСК("""";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);"""";"[";1);"""";"]");"+"&ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);" ";" +"))


или если в тексте с кавычками не бывает дефиса (как в примере), то
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСК("""";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"""";"[";1);"""";"]");"+"&ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);" ";" +"))
К сообщению приложен файл: 9469440.xlsx (9.5 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНемного короче
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСК("""";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);"""";"[";1);"""";"]");"+"&ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);" ";" +"))


или если в тексте с кавычками не бывает дефиса (как в примере), то
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСК("""";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"""";"[";1);"""";"]");"+"&ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);" ";" +"))

Автор - Pelena
Дата добавления - 24.12.2015 в 09:14
_Boroda_ Дата: Четверг, 24.12.2015, 10:34 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16913
Репутация: 6617 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Еще вариант
Код
=ЕСЛИ(ЛЕВБ(A1)="""";"["&ПСТР(A1;2;ДЛСТР(A1)-2)&"]";"+"&ПОДСТАВИТЬ(ЛЕВБ(A1;ПОИСК("-";A1&"-")-2);" ";" +"))
К сообщению приложен файл: 9469440_1.xlsx (9.4 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕще вариант
Код
=ЕСЛИ(ЛЕВБ(A1)="""";"["&ПСТР(A1;2;ДЛСТР(A1)-2)&"]";"+"&ПОДСТАВИТЬ(ЛЕВБ(A1;ПОИСК("-";A1&"-")-2);" ";" +"))

Автор - _Boroda_
Дата добавления - 24.12.2015 в 10:34
vikttur Дата: Четверг, 24.12.2015, 10:38 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

 
Ответить
СообщениеКросс:
http://forum.msexcel.ru/index.php/topic,11239.0.html

Автор - vikttur
Дата добавления - 24.12.2015 в 10:38
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!