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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для соеденения содержимого текста ячеек - Мир MS Excel

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

Доброго времени суток, прошу помощи в решении вопроса, есть таблица с "бесконечным" количеством строк каждая строка это характеристика опоры ЛЭП Необходимо создать на ее базе перечень опор по данной ЛЭП. Убрать строки в которых повторяется название ЛЭП, а опоры перечислить в одной.

|ВЛ-0,4 кВ КТП-152-17 Л-1|ДОЗ № 3|0.4|№1 №5 №2 №3 №10П №9 №8 №6 №4|

Пример исходной таблицы во вложении
Спасибо )
К сообщению приложен файл: __.xls(44.0 Kb)


Сообщение отредактировал clilvla - Пятница, 11.02.2022, 16:14
 
Ответить
СообщениеДоброго времени суток, прошу помощи в решении вопроса, есть таблица с "бесконечным" количеством строк каждая строка это характеристика опоры ЛЭП Необходимо создать на ее базе перечень опор по данной ЛЭП. Убрать строки в которых повторяется название ЛЭП, а опоры перечислить в одной.

|ВЛ-0,4 кВ КТП-152-17 Л-1|ДОЗ № 3|0.4|№1 №5 №2 №3 №10П №9 №8 №6 №4|

Пример исходной таблицы во вложении
Спасибо )

Автор - clilvla
Дата добавления - 11.02.2022 в 13:12
_Igor_61 Дата: Пятница, 11.02.2022, 17:12 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
1. Для начала попробуйте воспользоваться стандартным фильтром, по столбцу "А", результат будет виден.
2. Selection в макросе работает с выделенным диапазоном. Вам нужно вывести данные с какой-то строки по какую или со всей таблицы?
Пример ни о чем. Сформулируйте конкретную задачу с конкретным ее описанием (файл с примером тоже - размещать две таблицы одна под другой - далеко не лучший способ обработки и вывода данных) :)
И т.д.... вопросов больше, чем условий в задаче...


Сообщение отредактировал _Igor_61 - Пятница, 11.02.2022, 17:33
 
Ответить
Сообщение1. Для начала попробуйте воспользоваться стандартным фильтром, по столбцу "А", результат будет виден.
2. Selection в макросе работает с выделенным диапазоном. Вам нужно вывести данные с какой-то строки по какую или со всей таблицы?
Пример ни о чем. Сформулируйте конкретную задачу с конкретным ее описанием (файл с примером тоже - размещать две таблицы одна под другой - далеко не лучший способ обработки и вывода данных) :)
И т.д.... вопросов больше, чем условий в задаче...

Автор - _Igor_61
Дата добавления - 11.02.2022 в 17:12
Kuzmich Дата: Пятница, 11.02.2022, 18:36 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 682
Репутация: 150 ±
Замечаний: 0% ±

Excel 2003
[vba]
Код
Sub test()
Dim dicObj As Object
Dim i&
Set dicObj = CreateObject("scripting.dictionary")
  For i = 5 To Range("A4").End(xlDown).Row
    dicObj.Item(Cells(i, "A") & "|" & Cells(i, "B") & "|" & Cells(i, "C")) = dicObj.Item(Cells(i, "A") & "|" & Cells(i, "B") & "|" & Cells(i, "C")) + _
    Cells(i, "D") & ", "
  Next i
    Range("F5").Resize(dicObj.Count) = Application.Transpose(dicObj.Keys)
    Range("G5").Resize(dicObj.Count) = Application.Transpose(dicObj.Items)
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Sub test()
Dim dicObj As Object
Dim i&
Set dicObj = CreateObject("scripting.dictionary")
  For i = 5 To Range("A4").End(xlDown).Row
    dicObj.Item(Cells(i, "A") & "|" & Cells(i, "B") & "|" & Cells(i, "C")) = dicObj.Item(Cells(i, "A") & "|" & Cells(i, "B") & "|" & Cells(i, "C")) + _
    Cells(i, "D") & ", "
  Next i
    Range("F5").Resize(dicObj.Count) = Application.Transpose(dicObj.Keys)
    Range("G5").Resize(dicObj.Count) = Application.Transpose(dicObj.Items)
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 11.02.2022 в 18:36
clilvla Дата: Среда, 16.02.2022, 11:45 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Kuzmich, Спасибо большое. )
Было бы очень хорошо если бы макрос изменял именно исходную таблицу.
Пример во вложении
Большое прибольшое спасибо) :)
К сообщению приложен файл: 1795861.xls(44.0 Kb)
 
Ответить
СообщениеKuzmich, Спасибо большое. )
Было бы очень хорошо если бы макрос изменял именно исходную таблицу.
Пример во вложении
Большое прибольшое спасибо) :)

Автор - clilvla
Дата добавления - 16.02.2022 в 11:45
Alex4813 Дата: Среда, 16.02.2022, 16:23 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, есть таблица с несколькими столбцами и чуть больше чем сотня строк, необходимо сцепить некоторые ячейки в каждой строке и сделать так, что бы сцепка появилась в определённой ячейке. Прикладываю файл как пример. Необходимо сцепить ячейки B2,C2,D2,E2 и инфа должна записаться в ячейке J2 и так на 200 строк вниз. А и ещё что бы макрос работал автоматически, чтобы не надо было выделять ячейки, т.е. заранее известно из каких ячеек брать инфу. Помогите пожалуйста. Всё что я смог это найти вот такой макрос, но он не для этого случая:
Sub MergeToOneCell()
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
К сообщению приложен файл: 2130347.xlsx(10.8 Kb)


Сообщение отредактировал Alex4813 - Среда, 16.02.2022, 16:24
 
Ответить
СообщениеДобрый день, есть таблица с несколькими столбцами и чуть больше чем сотня строк, необходимо сцепить некоторые ячейки в каждой строке и сделать так, что бы сцепка появилась в определённой ячейке. Прикладываю файл как пример. Необходимо сцепить ячейки B2,C2,D2,E2 и инфа должна записаться в ячейке J2 и так на 200 строк вниз. А и ещё что бы макрос работал автоматически, чтобы не надо было выделять ячейки, т.е. заранее известно из каких ячеек брать инфу. Помогите пожалуйста. Всё что я смог это найти вот такой макрос, но он не для этого случая:
Sub MergeToOneCell()
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

Автор - Alex4813
Дата добавления - 16.02.2022 в 16:23
Pelena Дата: Среда, 16.02.2022, 16:26 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 18551
Репутация: 4200 ±
Замечаний: ±

Excel 2016 & Mac Excel
Alex4813, прочитайте Правила форума, создайте свою тему, не забудьте оформить код тегами с помощью кнопки #


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеAlex4813, прочитайте Правила форума, создайте свою тему, не забудьте оформить код тегами с помощью кнопки #

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

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