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

Вход

Регистрация

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

 

= Мир MS Excel/макрос объединения столбцов в один построчно - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » макрос объединения столбцов в один построчно (Макросы/Sub)
макрос объединения столбцов в один построчно
Ilsur Дата: Среда, 23.11.2016, 23:34 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток! Суть проблемы такая:
Имеется файл с таблицей с указанием в столбцах наименования товара, производитель, единица измерения. Нужно объединить эти 3 столбца в один построчно. Я так думаю макросом. Примерный код я нашел, но он при выделении нескольких строк обьеденяет все ячейки в одну. Вот он:
[vba]
Код
Sub MergeCell()
Const sDELIM As String = " "
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> "Range" Then Exit Sub
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text
Next rCell
Application.DisplayAlerts = False
.Merge Across:=False
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM))
End With

End Sub
[/vba]

Может тут что-то нужно изменить, чтобы при выделении всех значений 3 столбцов - обьединение произошло построчно. Прикрепляю файл с этими тремя столбцами. Заранее Спасибо!
К сообщению приложен файл: 6207947.xls (58.0 Kb)


с благодарностью Ilsur

Сообщение отредактировал Ilsur - Среда, 23.11.2016, 23:36
 
Ответить
СообщениеДоброго времени суток! Суть проблемы такая:
Имеется файл с таблицей с указанием в столбцах наименования товара, производитель, единица измерения. Нужно объединить эти 3 столбца в один построчно. Я так думаю макросом. Примерный код я нашел, но он при выделении нескольких строк обьеденяет все ячейки в одну. Вот он:
[vba]
Код
Sub MergeCell()
Const sDELIM As String = " "
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> "Range" Then Exit Sub
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text
Next rCell
Application.DisplayAlerts = False
.Merge Across:=False
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM))
End With

End Sub
[/vba]

Может тут что-то нужно изменить, чтобы при выделении всех значений 3 столбцов - обьединение произошло построчно. Прикрепляю файл с этими тремя столбцами. Заранее Спасибо!

Автор - Ilsur
Дата добавления - 23.11.2016 в 23:34
_Boroda_ Дата: Четверг, 24.11.2016, 00:00 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А формулой в соседнем столбце не пойдет? Потом оттуда можно скопировать и вставить значениями в нужно место
Код
=D7&J$6&" "&E7&J$6&" "&F7

В J$6 - разделитель у меня в файле точка с запятой
К сообщению приложен файл: 6207947_1.xls (59.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА формулой в соседнем столбце не пойдет? Потом оттуда можно скопировать и вставить значениями в нужно место
Код
=D7&J$6&" "&E7&J$6&" "&F7

В J$6 - разделитель у меня в файле точка с запятой

Автор - _Boroda_
Дата добавления - 24.11.2016 в 00:00
Ilsur Дата: Четверг, 24.11.2016, 00:11 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Конечно можно, я как вариант рассматривал его, но желательно с использованием макроса


с благодарностью Ilsur
 
Ответить
СообщениеКонечно можно, я как вариант рассматривал его, но желательно с использованием макроса

Автор - Ilsur
Дата добавления - 24.11.2016 в 00:11
Timber_Wolf Дата: Четверг, 24.11.2016, 09:48 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 2 ±
Замечаний: 0% ±

Excel 2010
Ilsur,

Вопрос 1
А результирующая ячейка то какая? =)) Вы выделяете 2-4 ячейки используете макрос и куда вы результат хотите получить? Во все 2-4 выделенных ячейки? =)

Вопрос 2
Вы хотите делать такую процедуру в ручную? Взять, выделить, макрос, готово, следующая строка... А обработка всего листа сразу не страивает? )


Сообщение отредактировал Timber_Wolf - Четверг, 24.11.2016, 09:49
 
Ответить
СообщениеIlsur,

Вопрос 1
А результирующая ячейка то какая? =)) Вы выделяете 2-4 ячейки используете макрос и куда вы результат хотите получить? Во все 2-4 выделенных ячейки? =)

Вопрос 2
Вы хотите делать такую процедуру в ручную? Взять, выделить, макрос, готово, следующая строка... А обработка всего листа сразу не страивает? )

Автор - Timber_Wolf
Дата добавления - 24.11.2016 в 09:48
Wasilich Дата: Четверг, 24.11.2016, 12:32 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Сама тема начинается со слова "макрос" но, почему то здесь!
Так пойдет?
[vba]
Код
Sub Макрос1()
  Dim I&, TX$
  Application.ScreenUpdating = False:  Application.DisplayAlerts = False
  For I = 7 To Range("D" & Rows.Count).End(xlUp).Row
    TX = Cells(I, 4) & "  " & Cells(I, 5) & "  " & Cells(I, 6)
    Range("D" & I & ":F" & I).Merge Across:=True
    Cells(I, 4) = TX
  Next
  Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub
[/vba]


Сообщение отредактировал Wasilich - Четверг, 24.11.2016, 12:36
 
Ответить
СообщениеСама тема начинается со слова "макрос" но, почему то здесь!
Так пойдет?
[vba]
Код
Sub Макрос1()
  Dim I&, TX$
  Application.ScreenUpdating = False:  Application.DisplayAlerts = False
  For I = 7 To Range("D" & Rows.Count).End(xlUp).Row
    TX = Cells(I, 4) & "  " & Cells(I, 5) & "  " & Cells(I, 6)
    Range("D" & I & ":F" & I).Merge Across:=True
    Cells(I, 4) = TX
  Next
  Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 24.11.2016 в 12:32
Ilsur Дата: Четверг, 24.11.2016, 16:07 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
да я и хочу весь лист с использованием макроса


с благодарностью Ilsur
 
Ответить
Сообщениеда я и хочу весь лист с использованием макроса

Автор - Ilsur
Дата добавления - 24.11.2016 в 16:07
Ilsur Дата: Четверг, 24.11.2016, 16:08 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilich большое спасибо за помощь, то что надо!))


с благодарностью Ilsur
 
Ответить
СообщениеWasilich большое спасибо за помощь, то что надо!))

Автор - Ilsur
Дата добавления - 24.11.2016 в 16:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » макрос объединения столбцов в один построчно (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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