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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос данных из ячейки в разные стролбцы - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных из ячейки в разные стролбцы (Макросы/Sub)
Перенос данных из ячейки в разные стролбцы
ovechkin1973 Дата: Вторник, 15.05.2018, 16:47 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 283
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем привет.. Есть файл большой, который из какой то вредной программы выгружается. В нем в столбце X указано количество материала, которое заказывали определенные люди (участки). Указано "коряво" через запятую. Очень нужно макросом переместить все названия участков в столбцы начиная с Z со второй строки (или в первого пустого столбца, что одно и тоже) и количество, что они заказали. К сожалению в ячейках бывает и один участок и несколько через запятую. Количество указано через тире. Немного заполнил в ручную, как должно выглядеть, но делать все в ручную, это на смену или больше.. Есть еще один нюанс... бывает, что в ячейке столбца X указан только один участок без количества.. у меня это во второй строке так. В этом случае, если нет количества через тире нужно его взять из столбца R. В примере зеленым залил такой случай.
К сообщению приложен файл: 8266128.xlsm(62.8 Kb)


Плохо когда не знаешь, да еще забудешь.
 
Ответить
СообщениеВсем привет.. Есть файл большой, который из какой то вредной программы выгружается. В нем в столбце X указано количество материала, которое заказывали определенные люди (участки). Указано "коряво" через запятую. Очень нужно макросом переместить все названия участков в столбцы начиная с Z со второй строки (или в первого пустого столбца, что одно и тоже) и количество, что они заказали. К сожалению в ячейках бывает и один участок и несколько через запятую. Количество указано через тире. Немного заполнил в ручную, как должно выглядеть, но делать все в ручную, это на смену или больше.. Есть еще один нюанс... бывает, что в ячейке столбца X указан только один участок без количества.. у меня это во второй строке так. В этом случае, если нет количества через тире нужно его взять из столбца R. В примере зеленым залил такой случай.

Автор - ovechkin1973
Дата добавления - 15.05.2018 в 16:47
StoTisteg Дата: Вторник, 15.05.2018, 16:58 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 749
Репутация: 58 ±
Замечаний: 0% ±

Excel 2010
Хм. А почему именно макросом? Чем Вас Текст по столбцам не устраивает?


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеХм. А почему именно макросом? Чем Вас Текст по столбцам не устраивает?

Автор - StoTisteg
Дата добавления - 15.05.2018 в 16:58
sboy Дата: Вторник, 15.05.2018, 17:48 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1739
Репутация: 492 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Если перенести в 1 строку все названия участков, то можно вот такой функцией пользователя обработать
[vba]
Код
Function ovechkin(t, p)
    If t.Value = p.Value Then ovechkin = t.Offset(0, -6).Value: Exit Function
    With CreateObject("VBScript.RegExp")
        .Pattern = Replace(Replace(p, ")", "\)"), "(", "\(") & "-(\d+)"
            If .test(t) Then
                ovechkin = CDbl(.Execute(t)(0).Submatches(0))
            Else: ovechkin = ""
            End If
    End With
End Function
[/vba]
К сообщению приложен файл: 6073296.xlsm(71.0 Kb)
 
Ответить
СообщениеДобрый день.
Если перенести в 1 строку все названия участков, то можно вот такой функцией пользователя обработать
[vba]
Код
Function ovechkin(t, p)
    If t.Value = p.Value Then ovechkin = t.Offset(0, -6).Value: Exit Function
    With CreateObject("VBScript.RegExp")
        .Pattern = Replace(Replace(p, ")", "\)"), "(", "\(") & "-(\d+)"
            If .test(t) Then
                ovechkin = CDbl(.Execute(t)(0).Submatches(0))
            Else: ovechkin = ""
            End If
    End With
End Function
[/vba]

Автор - sboy
Дата добавления - 15.05.2018 в 17:48
ovechkin1973 Дата: Вторник, 15.05.2018, 18:57 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 283
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А почему именно макросом? Чем Вас Текст по столбцам не устраивает?

придется часто пользоваться в разных версиях файла.. и еще его дорабатывать придеться макросами. И еще если значений очень много, то файл тормозить начинает.


Плохо когда не знаешь, да еще забудешь.
 
Ответить
Сообщение
А почему именно макросом? Чем Вас Текст по столбцам не устраивает?

придется часто пользоваться в разных версиях файла.. и еще его дорабатывать придеться макросами. И еще если значений очень много, то файл тормозить начинает.

Автор - ovechkin1973
Дата добавления - 15.05.2018 в 18:57
ovechkin1973 Дата: Вторник, 15.05.2018, 19:28 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 283
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уважаемый sboy, впервые моей фамилией называют функцию.. и она самая понятная для меня часть кода :(
Но пока формулы не увидел на листе не смог пользоваться.. Не совсем то, что просил, но работает как надо! Огромное человеческое..


Плохо когда не знаешь, да еще забудешь.

Сообщение отредактировал ovechkin1973 - Вторник, 15.05.2018, 20:17
 
Ответить
СообщениеУважаемый sboy, впервые моей фамилией называют функцию.. и она самая понятная для меня часть кода :(
Но пока формулы не увидел на листе не смог пользоваться.. Не совсем то, что просил, но работает как надо! Огромное человеческое..

Автор - ovechkin1973
Дата добавления - 15.05.2018 в 19:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных из ячейки в разные стролбцы (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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