Добрый день. Прошу вашего содействия. На Листе БД ячейке С2 и иногда ниже по столбцу находятся ячейки содержащие данные. Нужно эти данные от ячейки С2 и до последней заполненной по столбцу С скопировать в одну ячейку E7 лист (Итог) через запятую и знак перехода на следующую строчку внутри одной ячейки (Alt+Enter). Знаю что есть разделитель и по формуле.., прошу код VBA, если возможно.
Добрый день. Прошу вашего содействия. На Листе БД ячейке С2 и иногда ниже по столбцу находятся ячейки содержащие данные. Нужно эти данные от ячейки С2 и до последней заполненной по столбцу С скопировать в одну ячейку E7 лист (Итог) через запятую и знак перехода на следующую строчку внутри одной ячейки (Alt+Enter). Знаю что есть разделитель и по формуле.., прошу код VBA, если возможно.timo64uk
timo64uk, Можно рекордером в макрос записать ввод формулы
Код
=ОБЪЕДИНИТЬ(","&СИМВОЛ(10);;БД!C2:C6)
и далее ячейка.value=ячейка.value P.S. да, сперва в макросе найти последнюю заполненную строку и поставить это значение в код вместо 6. Если конечно есть в наличии функция ОБЪЕДИНИТЬ()...
timo64uk, Можно рекордером в макрос записать ввод формулы
Код
=ОБЪЕДИНИТЬ(","&СИМВОЛ(10);;БД!C2:C6)
и далее ячейка.value=ячейка.value P.S. да, сперва в макросе найти последнюю заполненную строку и поставить это значение в код вместо 6. Если конечно есть в наличии функция ОБЪЕДИНИТЬ()...Hugo
Sub u_700() Application.ScreenUpdating = False a = Cells(Rows.Count, "c").End(xlUp).Row b = "," & Chr(10) e = "" For Each c In Range("c2:c" & a).SpecialCells(xlCellTypeConstants, 23) d = c.Row If d = a Then b = "" e = e & c.Value & b Next Sheets("Итог").Range("e7") = e Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub u_700() Application.ScreenUpdating = False a = Cells(Rows.Count, "c").End(xlUp).Row b = "," & Chr(10) e = "" For Each c In Range("c2:c" & a).SpecialCells(xlCellTypeConstants, 23) d = c.Row If d = a Then b = "" e = e & c.Value & b Next Sheets("Итог").Range("e7") = e Application.ScreenUpdating = True End Sub
Dim a As Variant Dim b As Variant Dim e As Variant Dim c As Variant Dim d As Variant a = Cells(Rows.Count, "c").End(xlUp).Row b = "," & Chr(10) e = "" For Each c In Range("c2:c" & a).SpecialCells(xlCellTypeConstants, 23) d = c.Row If d = a Then b = "" e = e & c.Value & b Next Sheets("Итог").Range("e7") = e
[/vba] Т.к. в случае если в столбце С ниже С2 отсутствуют данные, т.е. данные только в С2 и при этом другие произвольные ячейки листа не пусты, то макрос подтягивает и эти значения (см. лист Итог в приложенном файле). Буду рад любой помощи... Сам-то никак "не дойду".
Dim a As Variant Dim b As Variant Dim e As Variant Dim c As Variant Dim d As Variant a = Cells(Rows.Count, "c").End(xlUp).Row b = "," & Chr(10) e = "" For Each c In Range("c2:c" & a).SpecialCells(xlCellTypeConstants, 23) d = c.Row If d = a Then b = "" e = e & c.Value & b Next Sheets("Итог").Range("e7") = e
[/vba] Т.к. в случае если в столбце С ниже С2 отсутствуют данные, т.е. данные только в С2 и при этом другие произвольные ячейки листа не пусты, то макрос подтягивает и эти значения (см. лист Итог в приложенном файле). Буду рад любой помощи... Сам-то никак "не дойду". timo64uk