Макрос обработки текстовых ячеек
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 макрос. Пример таблицы, которую он должен обрабатывать прилагается во вложении. Очень прошу, помогите, голова кипит уже.
%) Что необходимо: 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
Сообщение отредактировал 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
и вам Здравствуйте!!!нет вложения :'( [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]
Нашел макрос замены кавычек на квадратные скобки, но он работет только в 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
Сообщение отредактировал 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
Ответить
Сообщение китин , файл приложил, если есть возможность переместите тему пожалуйстаАвтор - 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);"""";"]"))
переместите тему пожалуйста
Это к модераторам. Макрос предложить не могу (слаб я в них) формулу могу какую никакую Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("""";A1));"+"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]");ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"))
китин
Не судите очень строго:я пытаюсь научиться ЯД 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
Ответить
Сообщение китин , Огромное спасибо, формула работает, только "+" ставится лишь вначале ячейки, как сделать так чтобы где это необходимо "+" ставился перед каждым словом Пример: +чтобы +текст +в +ячейке +отображался +такАвтор - 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);"""";"]"))
тады вот так проверяйтеКод
=ЕСЛИ(ЕОШИБКА(ПОИСК("""";A1));"+"&ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"));" ";"+");ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК("-";A1)-1);A1);"""";"[";1);"""";"]"))
китин
Не судите очень строго:я пытаюсь научиться ЯД 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 , вы еще с БОГАМИ ФОРМУЛ не встречались.Они спят пока.
[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;);" ";" +"))
Немного корочеКод
=ЕСЛИ(ЕЧИСЛО(ПОИСК("""";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);"""";"[";1);"""";"]");"+"&ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);" ";" +"))
или если в тексте с кавычками не бывает дефиса (как в примере), тоКод
=ЕСЛИ(ЕЧИСЛО(ПОИСК("""";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"""";"[";1);"""";"]");"+"&ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("-";A1&" -")-1;99;);" ";" +"))
Pelena
"Черт возьми, Холмс! Но как??!!" Ю-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);" ";" +"))
Еще вариантКод
=ЕСЛИ(ЛЕВБ(A1)="""";"["&ПСТР(A1;2;ДЛСТР(A1)-2)&"]";"+"&ПОДСТАВИТЬ(ЛЕВБ(A1;ПОИСК("-";A1&"-")-2);" ";" +"))
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
Ответить