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

Вход

Регистрация

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

 

= Мир MS Excel/Значения ячеек вставить в одну ячейку через запятую - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Значения ячеек вставить в одну ячейку через запятую
timo64uk Дата: Суббота, 05.10.2024, 11:55 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 1 ±
Замечаний: 0% ±

Office16
Добрый день.
Прошу вашего содействия.
На Листе БД ячейке С2 и иногда ниже по столбцу находятся ячейки содержащие данные. Нужно эти данные от ячейки С2 и до последней заполненной по столбцу С скопировать в одну ячейку E7 лист (Итог) через запятую и знак перехода на следующую строчку внутри одной ячейки (Alt+Enter).
Знаю что есть разделитель и по формуле.., прошу код VBA, если возможно.
К сообщению приложен файл: 888.xlsx (9.5 Kb)
 
Ответить
СообщениеДобрый день.
Прошу вашего содействия.
На Листе БД ячейке С2 и иногда ниже по столбцу находятся ячейки содержащие данные. Нужно эти данные от ячейки С2 и до последней заполненной по столбцу С скопировать в одну ячейку E7 лист (Итог) через запятую и знак перехода на следующую строчку внутри одной ячейки (Alt+Enter).
Знаю что есть разделитель и по формуле.., прошу код VBA, если возможно.

Автор - timo64uk
Дата добавления - 05.10.2024 в 11:55
Hugo Дата: Суббота, 05.10.2024, 12:59 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3709
Репутация: 793 ±
Замечаний: 0% ±

365
timo64uk, Можно рекордером в макрос записать ввод формулы
Код
=ОБЪЕДИНИТЬ(","&СИМВОЛ(10);;БД!C2:C6)

и далее ячейка.value=ячейка.value
P.S. да, сперва в макросе найти последнюю заполненную строку и поставить это значение в код вместо 6.
Если конечно есть в наличии функция ОБЪЕДИНИТЬ()...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Суббота, 05.10.2024, 13:05
 
Ответить
Сообщениеtimo64uk, Можно рекордером в макрос записать ввод формулы
Код
=ОБЪЕДИНИТЬ(","&СИМВОЛ(10);;БД!C2:C6)

и далее ячейка.value=ячейка.value
P.S. да, сперва в макросе найти последнюю заполненную строку и поставить это значение в код вместо 6.
Если конечно есть в наличии функция ОБЪЕДИНИТЬ()...

Автор - Hugo
Дата добавления - 05.10.2024 в 12:59
Nic70y Дата: Суббота, 05.10.2024, 13:06 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 9032
Репутация: 2374 ±
Замечаний: 0% ±

Excel 2010
[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
[/vba]
К сообщению приложен файл: 888.xlsm (18.1 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение[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
[/vba]

Автор - Nic70y
Дата добавления - 05.10.2024 в 13:06
Hugo Дата: Суббота, 05.10.2024, 13:20 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3709
Репутация: 793 ±
Замечаний: 0% ±

365
Ещё вариант по примеру:
[vba]
Код
Sub tt()
Dim a
a = Sheets("БД").[c2].CurrentRegion.Value
a = Application.Transpose(a)
[e7].Value = Join(a, "," & Chr(10))
End Sub
[/vba]
Оптимизируем:
[vba]
Код
Sub tt()
[e7].Value = Join(Application.Transpose(Sheets("БД").[c2].CurrentRegion.Value), "," & Chr(10))
End Sub
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Суббота, 05.10.2024, 13:27
 
Ответить
СообщениеЕщё вариант по примеру:
[vba]
Код
Sub tt()
Dim a
a = Sheets("БД").[c2].CurrentRegion.Value
a = Application.Transpose(a)
[e7].Value = Join(a, "," & Chr(10))
End Sub
[/vba]
Оптимизируем:
[vba]
Код
Sub tt()
[e7].Value = Join(Application.Transpose(Sheets("БД").[c2].CurrentRegion.Value), "," & Chr(10))
End Sub
[/vba]

Автор - Hugo
Дата добавления - 05.10.2024 в 13:20
timo64uk Дата: Суббота, 05.10.2024, 15:24 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 1 ±
Замечаний: 0% ±

Office16
Спасибо огромное.
Спасли меня от долгих поисков и перебора всех операторов).
 
Ответить
СообщениеСпасибо огромное.
Спасли меня от долгих поисков и перебора всех операторов).

Автор - timo64uk
Дата добавления - 05.10.2024 в 15:24
timo64uk Дата: Четверг, 10.10.2024, 11:37 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 1 ±
Замечаний: 0% ±

Office16

Прошу помощи в изменении кода.
[vba]
Код
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 и при этом другие произвольные ячейки листа не пусты, то макрос подтягивает и эти значения (см. лист Итог в приложенном файле).
Буду рад любой помощи... Сам-то никак "не дойду". :'(
К сообщению приложен файл: 9805723.xlsx (11.1 Kb)
 
Ответить
Сообщение
Прошу помощи в изменении кода.
[vba]
Код
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
Дата добавления - 10.10.2024 в 11:37
Hugo Дата: Четверг, 10.10.2024, 12:25 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3709
Репутация: 793 ±
Замечаний: 0% ±

365
timo64uk, достаточно изменить одну строку на
[vba]
Код
For Each c In Range("c2:c" & a).Cells
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщениеtimo64uk, достаточно изменить одну строку на
[vba]
Код
For Each c In Range("c2:c" & a).Cells
[/vba]

Автор - Hugo
Дата добавления - 10.10.2024 в 12:25
timo64uk Дата: Четверг, 10.10.2024, 12:35 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 1 ±
Замечаний: 0% ±

Office16
достаточно

Ура! Заработало. Спасибо
 
Ответить
Сообщение
достаточно

Ура! Заработало. Спасибо

Автор - timo64uk
Дата добавления - 10.10.2024 в 12:35
  • Страница 1 из 1
  • 1
Поиск:

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