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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование части слова с заменой из одного столбца в другой - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Копирование части слова с заменой из одного столбца в другой
wwizard Дата: Пятница, 23.02.2018, 13:05 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Есть огромная таблица. Каждое утро приходит по почте. В ней самое главное - это первая колонка, и шестая.
Первая колонка - это артикль товара, он создается выгрузкой с базы. Но чтото програмисты напутали и приходится делать ручками. Что реально очень нужно:

- Можно както придумать скриптом, чтобы в первую колонку вынеслось - все что в скобках во второй.
- Далее все что в скобках во второй, но имеет пробел, автоматически вставилось нижнее подчеркивание _ (пометил зеленым цветом) - и также переносилось уже с подчеркиванием в первый
- И гдавный вопрос - там где скобок нет, но артикль присуствует, чтоб либо его не трогало, либо также переместил в первую колонку (пометил голубым цветом)

Кусок файла приложил - цветами пометил что и как. Очень прошу помощи, так как - [кнопка запись макроса] - мне здесь не поможет. Буду очень признателен за посильную помощь.
К сообщению приложен файл: proba1.xlsx (11.8 Kb)
 
Ответить
СообщениеЕсть огромная таблица. Каждое утро приходит по почте. В ней самое главное - это первая колонка, и шестая.
Первая колонка - это артикль товара, он создается выгрузкой с базы. Но чтото програмисты напутали и приходится делать ручками. Что реально очень нужно:

- Можно както придумать скриптом, чтобы в первую колонку вынеслось - все что в скобках во второй.
- Далее все что в скобках во второй, но имеет пробел, автоматически вставилось нижнее подчеркивание _ (пометил зеленым цветом) - и также переносилось уже с подчеркиванием в первый
- И гдавный вопрос - там где скобок нет, но артикль присуствует, чтоб либо его не трогало, либо также переместил в первую колонку (пометил голубым цветом)

Кусок файла приложил - цветами пометил что и как. Очень прошу помощи, так как - [кнопка запись макроса] - мне здесь не поможет. Буду очень признателен за посильную помощь.

Автор - wwizard
Дата добавления - 23.02.2018 в 13:05
Kuzmich Дата: Пятница, 23.02.2018, 19:34 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация: 157 ±
Замечаний: 0% ±

Excel 2003
Цитата
Можно как-то придумать скриптом, чтобы в первую колонку вынеслось - все что в скобках во второй.

Для примера выносит в столбец G
[vba]
Код
Sub ВыделитьВскобках()
Dim i As Long
Dim iLastRow As Long
Dim iMatches As Object
iLastRow = Cells(Rows.Count, "B").End(xlUp).Row
    'очищаем диапазон
Range("G1:G" & iLastRow).ClearContents
With CreateObject("vbscript.regexp")
  .Global = True
  .IgnoreCase = True
     'цикл по ячейкам столбца B
    For i = 2 To iLastRow
     .Pattern = "\(.*?(?=\))"
      If .test(Cells(i, "B")) Then
        Set iMatches = .Execute(Cells(i, "B"))
          If InStr(1, iMatches(0), " ") <> 0 Then
            Cells(i, "G") = Mid(iMatches(0), 2)
            Cells(i, "G").Replace what:=" ", replacement:="_"
          Else
            Cells(i, "G") = Mid(iMatches(0), 2)
          End If
      Else
        Cells(i, 7) = Cells(i, 2)
      End If
    Next
End With
End Sub
[/vba]
 
Ответить
Сообщение
Цитата
Можно как-то придумать скриптом, чтобы в первую колонку вынеслось - все что в скобках во второй.

Для примера выносит в столбец G
[vba]
Код
Sub ВыделитьВскобках()
Dim i As Long
Dim iLastRow As Long
Dim iMatches As Object
iLastRow = Cells(Rows.Count, "B").End(xlUp).Row
    'очищаем диапазон
Range("G1:G" & iLastRow).ClearContents
With CreateObject("vbscript.regexp")
  .Global = True
  .IgnoreCase = True
     'цикл по ячейкам столбца B
    For i = 2 To iLastRow
     .Pattern = "\(.*?(?=\))"
      If .test(Cells(i, "B")) Then
        Set iMatches = .Execute(Cells(i, "B"))
          If InStr(1, iMatches(0), " ") <> 0 Then
            Cells(i, "G") = Mid(iMatches(0), 2)
            Cells(i, "G").Replace what:=" ", replacement:="_"
          Else
            Cells(i, "G") = Mid(iMatches(0), 2)
          End If
      Else
        Cells(i, 7) = Cells(i, 2)
      End If
    Next
End With
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 23.02.2018 в 19:34
wwizard Дата: Суббота, 24.02.2018, 00:00 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Для примера выносит в столбец G


неа http://prntscr.com/iiwadt не хотит
 
Ответить
Сообщение
Для примера выносит в столбец G


неа http://prntscr.com/iiwadt не хотит

Автор - wwizard
Дата добавления - 24.02.2018 в 00:00
krosav4ig Дата: Суббота, 24.02.2018, 01:52 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
wwizard,
End With
End Sub


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеwwizard,
End With
End Sub

Автор - krosav4ig
Дата добавления - 24.02.2018 в 01:52
  • Страница 1 из 1
  • 1
Поиск:

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