Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


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

Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Автор Тема: Копировать и заменить по * (звездочке)  (Прочитано 2180 раз)

0 Пользователей и 1 Гость просматривают эту тему.

nvm

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 4

Всем привет!
Не знаю макросов и программирование, но задачка такая.
Есть определенное кол-во строк
и мне надо с самого конца каждой строки удалить значение до первой запятой.

я не нашел ничего лучше чем просто сделать таким способом:
CTRL + F в поле найти вбиваю такую конструкцию (*, *, '*', '*', '*', '*', '*', '*', '*'),
а в поле заменить делаю так: (*, *, '*', '*', '*', '*', '*', '*', '111'),

и на выходе получаю )))  -  (*, *, '*', '*', '*', '*', '*', '*', '111'),

тоесть по факту конструкция поиска работает (*, *, '*', '*', '*', '*', '*', '*', '*'),

но как сделать так, что бы при замене текст оставался тот который под звездочками?
Может как то экранировать нужно или посоветуйте как быть?
Записан

vikttur

  • Глобальный модератор
  • Ветеран
  • *****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 1 015

А где пример?
Записан

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 943

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

можно вот так посоветовать: Sub УдалитьДоКрайЗПТ()
'
' УдалитьДоКрайЗПТ Макрос
' Удалить часть строки до первой запятой от правого края строки
'
' Сочетание клавиш: Ctrl+Shivt+Ю
'
    With ActiveSheet
        k = Selection.Rows.Count
        MsgBox "Количество обрабатываемых строк = " & k, vbInformation + vbOKOnly, ""

        For Each CelSelect In Selection
            t = CelSelect.Value
'            MsgBox t, vbInformation + vbOKOnly, ""

'            For j = 1 To Len(t)
'                simv = Mid(t, j, 1)
'                ascZn = Asc(simv)
'                MsgBox simv & Chr(10) & ascZn, vbInformation + vbOKOnly, t
'            Next j
           
            znak = InStrRev(t, Chr(44), , vbTextCompare)
            e = Mid(t, 1, znak - 1)
           
            MsgBox e, vbInformation + vbOKOnly, ""
           
            CelSelect.Offset(, 1) = e
        Next
    End With
End Sub
Записан
Путей к вершине - множество. Этот один из многих!

runner

  • Постоялец
  • ***
  • Уважение: +7/-0
  • Оффлайн Оффлайн
  • Сообщений: 155

=ЛЕВСИМВ(A1;ПОИСК(",";A1;1)-1)так?
« Последнее редактирование: 09.02.2021, 10:06:53 от Serge 007 »
Записан

runner

  • Постоялец
  • ***
  • Уважение: +7/-0
  • Оффлайн Оффлайн
  • Сообщений: 155

=ЛЕВСИМВ(ПОДСТАВИТЬ(A1;",";"#";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;",";"")));ПОИСК("#";ПОДСТАВИТЬ(A1;",";"#";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;",";""))))-1)
или так?
Но тогда в условии должно быть написано не
Цитировать
надо с самого конца каждой строки удалить значение до первой запятой.
а надо в каждой строке удалить значение после последней запятой.

пример был бы лучшим вариантом ;D
« Последнее редактирование: 09.02.2021, 10:06:29 от Serge 007 »
Записан
 



Темы без ответов

24.01.2020 14:03 На диаграмме Ганта несоответствие оси Y 1132
09.08.2019 14:09 Макрос для заполнения таблиц через форму 2880
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 2498
09.07.2019 20:39 Кредит с уменьшением периода выплат 2594
28.05.2019 21:09 Сделать несколько скриптов для рабочей таблицы 3306
05.03.2019 17:00 Последовательный вывод таблиц Excel в один документ Word без шаблона 3199
05.03.2019 09:29 Нежелательные изменение размеров колонтитула при редактировании 2960
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 3122
20.01.2019 12:38 Все варианты частичного суммирования 3280
13.01.2019 12:24 Заполнение диапазона числами - в виде кластеров 2628





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.099 секунд. Запросов: 92.