Доброго времени суток, прошу помощи в решении вопроса, есть таблица с "бесконечным" количеством строк каждая строка это характеристика опоры ЛЭП Необходимо создать на ее базе перечень опор по данной ЛЭП. Убрать строки в которых повторяется название ЛЭП, а опоры перечислить в одной.
Доброго времени суток, прошу помощи в решении вопроса, есть таблица с "бесконечным" количеством строк каждая строка это характеристика опоры ЛЭП Необходимо создать на ее базе перечень опор по данной ЛЭП. Убрать строки в которых повторяется название ЛЭП, а опоры перечислить в одной.
1. Для начала попробуйте воспользоваться стандартным фильтром, по столбцу "А", результат будет виден. 2. Selection в макросе работает с выделенным диапазоном. Вам нужно вывести данные с какой-то строки по какую или со всей таблицы? Пример ни о чем. Сформулируйте конкретную задачу с конкретным ее описанием (файл с примером тоже - размещать две таблицы одна под другой - далеко не лучший способ обработки и вывода данных) И т.д.... вопросов больше, чем условий в задаче...
1. Для начала попробуйте воспользоваться стандартным фильтром, по столбцу "А", результат будет виден. 2. Selection в макросе работает с выделенным диапазоном. Вам нужно вывести данные с какой-то строки по какую или со всей таблицы? Пример ни о чем. Сформулируйте конкретную задачу с конкретным ее описанием (файл с примером тоже - размещать две таблицы одна под другой - далеко не лучший способ обработки и вывода данных) И т.д.... вопросов больше, чем условий в задаче..._Igor_61
Сообщение отредактировал _Igor_61 - Пятница, 11.02.2022, 17:33
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
Kuzmich, Спасибо большое. ) Было бы очень хорошо если бы макрос изменял именно исходную таблицу. Пример во вложении Большое прибольшое спасибо)
Kuzmich, Спасибо большое. ) Было бы очень хорошо если бы макрос изменял именно исходную таблицу. Пример во вложении Большое прибольшое спасибо) clilvla
Добрый день, есть таблица с несколькими столбцами и чуть больше чем сотня строк, необходимо сцепить некоторые ячейки в каждой строке и сделать так, что бы сцепка появилась в определённой ячейке. Прикладываю файл как пример. Необходимо сцепить ячейки 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
Добрый день, есть таблица с несколькими столбцами и чуть больше чем сотня строк, необходимо сцепить некоторые ячейки в каждой строке и сделать так, что бы сцепка появилась в определённой ячейке. Прикладываю файл как пример. Необходимо сцепить ячейки 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 SubAlex4813