Цитата |
---|
написал: With Range("A:A") .Replace "@Дрова", "[lumber]", 2 End With |
Найти и заменить много слов за один раз через VBA
Найти и заменить много слов за один раз через VBA
02.08.2024 20:52:25
Поковырялся еще в интернетах, вот такой вариант в итоге оказался рабочим (без циклов по файлам и перебора листов, просто замена):
Sub MassReplace() Range("A:A").Replace "@Дрова", "[lumber]", 2 Range("A:A").Replace "@Редкий", "[rare]", 2 Range("A:A").Replace "@2Игрока", "[2players]", 2 Range("A:A").Replace "@1Игрок", "[1player]", 2 Range("A:A").Replace "@БоссТокен", "[elite_token]", 2 Range("A:A").Replace "@Золото", "[gold]", 2 End Sub Как-то даже чересчур просто оказалось; непонятно, почему на подавляющем количестве других ссылок, по которым я переходил, везде предлагали способ с написанием вариантов прямо на рабочей странице Excel. |
|
|
Найти и заменить много слов за один раз через VBA
Найти и заменить много слов за один раз через VBA
02.08.2024 13:57:45
Приветствую! У меня есть некий рабочий файл, в котором я хотел бы произвести массовую замену определенных слов на другие. Попробовал поискать готовые решения в интернетах, но они либо подразумевают добавление самих значений в файл (грубо говоря, текст в колонке А, исходные слова под замену в колонке B, а то на что надо заменить слово в колонке C), либо подразумевают, что заменить надо содержание ячейки целиком, а не отдельные в них слова. Эти варианты мне не совсем подходят, так как у меня около 100 файлов и добавлять в каждый новые колонки, а потом их удалять займет, по ощущениеям, больше времени, чем если сделать замену вручную.
Поэтому хотел уточнить, реально ли массовую замену слов запихнуть полностью в VBA, включая все исходные слова, а также то на что их надо заменить. Таких слов может быть от 30 до 50, я их готов все вручную прописать, не проблема. Если реально, получится помочь с примером самого кода, пожалуйста? Не уверен, что словами объяснил нормально, поэтому приложу файл пример. Мне нужно поменять следующее: @Дрова ==> [lumber] @Редкий ==> [rare] @2Игрока ==> [2players] @1Игрок ==> [1player] @БоссТокен ==> [elite_token] @Золото ==> [gold] В реальном рабочем файле текст, где потребуется замена, может быть в колонках А и B. По сути мне нужно заменить одни технические теги (@Текст) на другие ([text]); эти теги потом будут преобразованы в графические иконки. Понимаю, что это можно сделать ручками через тот же CTRL+H, просто файлов будет около 100, а самих технических тегов от 30 до 50, вдруг через макрос можно это дело сделать оперативнее. Спасибо!
Изменено: |
|
|
Замена HTML тегов на реальное форматирование (жирный, курсив)
31.07.2024 19:06:57
UPD: Не сообразил скачать ваш файл и взять код оттуда, прошу прощения. Попробовал на своем рабочем файле, вроде все в полном порядке, спасибо большое!
Изменено: |
|||
|
Замена HTML тегов на реальное форматирование (жирный, курсив)
30.07.2024 00:41:42
|
|||
|
Замена HTML тегов на реальное форматирование (жирный, курсив)
28.07.2024 20:46:50
UPD: Возможно дело не в положении тегов, быть может в объеме слов? Пока не могу сообразить. Я чуть дополнил ваш файл с примером, одно из предложений на кириллице переделал - поставил <i> в самом начале, </i> в самом конце, вроде все работает. Но добавил фразу подлиннее в самый конец списка и вот там теги не удаляются, хотя форматирование применяется корректно. Сам файл приложу.
Изменено: |
|||||
|
Замена HTML тегов на реальное форматирование (жирный, курсив)
28.07.2024 12:55:49
Приветствую! У меня есть пример текста следующего формата:
Здесь будет <b>важная</b> информация, которую <i>было бы неплохо</i> вынести в <b>отдельный</b> документ. Я бы хотел с помощью макроса осуществить следующие действия: - отформатировать все что внутри тегов <b>...</b> жирным - удалить сами теги <b> и </b> - отформатировать все что внтури тегов <i>...</i> курсивом - удалить сами теги <i> и </i> - применить макрос ко всему столбцу То есть чтобы получилось вот так: Здесь будет важная информация, которую было бы неплохо вынести в отдельный документ. Покопавшись в интернетах, я нашел следующий код: Sub BoldTags() Dim X As Long, BoldOn As Boolean BoldOn = False 'Default from start of cell is not to bold For X = 1 To Len(ActiveCell.Text) If UCase(Mid(ActiveCell.Text, X, 3)) = "<B>" Then BoldOn = True ActiveCell.Characters(X, 3).Delete End If If UCase(Mid(ActiveCell.Text, X, 4)) = "</B>" Then BoldOn = False ActiveCell.Characters(X, 4).Delete End If ActiveCell.Characters(X, 1).Font.Bold = BoldOn Next End Sub И он работает, но только в одной ячейке (у меня целый столбец текстов). Мои познания в VBA минимальны насколько это возможно, поэтому хотел узнать, будет ли возможность помочь доработать этот макрос (или быть может предложить что-то совсем другое), чтобы он работал на всю колонку. И можно ли сразу сделать так, чтобы один макрос преобразовывал и жирный, и курсив? В теории, наверное, можно было бы сделать два отдельных макроса и, насколько я понимаю, заменить BoldOn и прочие выражения на ItalicOn, но вдруг это можно все одной кнопкой прогнать. Спасибо! |
|
|
Фильтрация значения из нескольких столбцов одновременно
Фильтрация значения из нескольких столбцов одновременно
15.04.2019 14:45:11
|
|||
|
Фильтрация значения из нескольких столбцов одновременно
15.04.2019 14:32:17
Прикрепляю файл-пример, в столбце B красным выделены строки 8 и 9, а в столбце C красным выделены 13, 14 и 15. Можно ли отфильтровать эти столбцы таким образом, чтобы в итоге остались все строки с красными выделениями - 8, 9, 13, 14 и 15. Если я отфильтрую столбец B по красному тексту, то он скроет строки 13, 14 и 15, если я отфильтрую столбец C по красному тексту, то он скроет строки 8 и 9, а мне нужно чтобы остались они все. Я думал есть какой-то "одновременный" фильтр по одному и тому же условию (красный текст) сразу по всем столбцам.
|
|
|
Фильтрация значения из нескольких столбцов одновременно
15.04.2019 14:20:20
Здравствуйте,
Сложилось впечатление, что вопрос тривиальный, однако решения пока найти так и не получилось. У меня есть файл с 2 столбцами, который содержит процентов 90 чешского и процентов 10 русского. Мне нужно выделить русский язык, чтобы впоследствии перевести на чешский. Я воспользовался макросом, найденным на этом же форуме, чтобы окрасить весь русский в красный цвет, теперь мне осталось его просто отфильтровать. Однако проблема в том, что в разных столбцах выделены разные строки, например в столбце А красным выделены строки 1,3 и 5, а в столбце B красным выделены строки 2,4 и 6. Если я фильтрую столбец А, то он не показывает строки в столбце B и, соответственно, наоборот, если фильтрую столбец B. Мне же нужно, чтобы после фильтрации остался красный во всех столбцах; фильтрация стоит на всех столбцах, я пробовал выделять столбцы через CTRL и нажимать на столбцы в разной последовательности, один раз мне показалось, что он отфильтровал корректно, так как показывал и строку 5, и строку 6, решил проверить на другом файле - уже не получилось. Сможете объяснить корректную последовательность действий, пожалуйста? Или так отфильтровать не получится в принципе? |
|
|
Применение макроса ко всем листам в книге
21.02.2019 00:44:44
Ваш код сработал просто как часы, это сэкономит очень много времени, спасибо огромное! |
|||
|
Применение макроса ко всем листам в книге
21.02.2019 00:19:03
Здравствуйте, мне довольно часто приходится работать с Книгами, содержащими по 100+ листов. На каждом листе скрыты разные столбцы и/или строки и перед финальной отправкой мне нужно отобразить абсолютно все данные, все столбцы и строки. Начинал я вручную: выделить все, правая клавиша, Отобразить. Далее я нашел вот такой простенький макрос, который экономит немного времени:
Однако он работает только на активный лист. Я попробовал поискать методы применения макроса сразу ко всем листам и нашел вот такую конструкцию:
Преобразовал ее в следующее:
Но она так и не заработала, вызывает ошибку с строке Sub RunCode(). Сможете подсобить с поиском решения, пожалуйста? Может быть есть более простой вариант? |
|||||||
|
Сообщение о наличии нескольких листов в открываемом excel-файле
29.05.2013 14:03:21
Здравствуйте!
Сегодня в очередной раз при работе не обратил внимание, что в присланном документе excel было несколько листов, из-за чего пришлось немного сдвинуть сроки работ и тд. Хотел бы спросить, знаете ли вы какой-нибудь макрос или надстройку, или любое другое решение, которое каким-либо образом обозначало общее кол-во листов в документе или било тревогу, если количество листов превышает один, в общем давало мне знать, что в файле есть несколько листов, с которыми надо работать. Спасибо!
Изменено: |
|
|