Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Объединение значений ячеек в одну ячейку


Автор: Rezident 15.2.2016, 21:35
Добрый день!
Есть список компаний, их адреса и коды компаний в трех столбцах соответственно. Нужно коды компаний
из третьего столбца записать в одну ячейку через запятую(например А16). Получается записать только в строку, а если в одну ячейку, то она заменяется каждый раз и оставляет только последнее значение. Как это можно сделать?
Код макроса:

Sub Test()
Dim st As String

For i = 2 To 21
st = Sheets("Лист1").Cells(i, 3).Value
Sheets("Лист1").Cells(16, i - 1) = st & ","
'Sheets("Лист1").Cells(17, 1) = st & ","
Next i

End Sub


Автор: Akina 16.2.2016, 09:14
В common-модуле пишешь функцию конкатенации значений:

Код

function concat(r as range) as string
dim c as range
for each c in r
  if trim(c.value)<>"" then
    concat=  ", " & concat & c.value
  endif
next
if len(concat) > 2 then 
  concat = mid(concat,3)
endif
end function


В ячейке назначения пишешь формулу
Код

=concat("C1:C100")

где C1:C100 - диапазон с нужными тебе кодами.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)