Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 17.11.2020, 18:45   #1
бетон
Пользователь
 
Регистрация: 11.06.2019
Сообщений: 30
По умолчанию приспособить код

Добрый день!
Есть отличный макрос, выводящий объединенный текст произвольного диапазона, например - A1:AK314, в указываемую в коде ячейку : Range("AK315") = Str

Sub obedinenie_teksta()

'Объединение текста ячеек выделенного диапазона
Dim iCell As Range
Dim Str As String
For Each iCell In Selection
Str = Str & iCell.Value
Next iCell
'Вывод объединенного текста в ячейку "A1"
Range("AK315") = Str
'Вывод объединенного текста в сообщение
MsgBox Str

End Sub


Как можно сделать, чтобы результат объединения текстов выводился под каждым столбцом диапазона в ячейках А315, B315, ... AK315
и,
если в ячейках есть нули, то их не показывать или текст таких ячеек не объединять
бетон вне форума Ответить с цитированием
Старый 18.11.2020, 00:38   #2
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,377
По умолчанию

Код:
Sub obedinenie_teksta()
  Dim iCell As Range, C as range, Str As String
  for each c in selection.columns
    str = ""
    For Each iCell In c
      Str = Str & iCell.Value
    Next iCell
    c.cells(1).offset(c.count,0) = str
  next
End Sub
41001804815208 - ЮMoney бывш.Яндекс-кошелек благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.11.2020, 01:02   #3
бетон
Пользователь
 
Регистрация: 11.06.2019
Сообщений: 30
По умолчанию

IgorGO,
не работает, Str = Str & iCell.Value горит желтым что делать
бетон вне форума Ответить с цитированием
Старый 18.11.2020, 01:14   #4
бетон
Пользователь
 
Регистрация: 11.06.2019
Сообщений: 30
По умолчанию

Вот скрин
Вложения
Тип файла: 7z Сбъединение текста (wecompress.com).7z (215.8 Кб, 2 просмотров)
бетон вне форума Ответить с цитированием
Старый 18.11.2020, 01:14   #5
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,377
По умолчанию

Код:
Sub obedinenie_teksta()
  Dim iCell As Range, C As Range, Str As String
  For Each C In Selection.Columns
    Str = ""
    For Each iCell In C.Cells
      if iCell.Value<> 0 then Str = Str & iCell.Value
    Next iCell
    C.Cells(1).Offset(C.Cells.Count, 0) = Str
  Next
End Sub
41001804815208 - ЮMoney бывш.Яндекс-кошелек благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 18.11.2020 в 01:46.
IgorGO вне форума Ответить с цитированием
Старый 18.11.2020, 01:42   #6
бетон
Пользователь
 
Регистрация: 11.06.2019
Сообщений: 30
По умолчанию

IgorGO,
Отлично, спасибо, снимаю шляпу!
Если можно избавиться от нулей (специально выделил красным) - будет ВООБЩЕ!!!
Вложения
Тип файла: 7z Объединение текста 2.7z (295.7 Кб, 4 просмотров)
бетон вне форума Ответить с цитированием
Старый 18.11.2020, 01:47   #7
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,377
По умолчанию

Код:
if iCell.Value<> 0 then Str = Str & iCell.Value
41001804815208 - ЮMoney бывш.Яндекс-кошелек благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.11.2020, 01:48   #8
бетон
Пользователь
 
Регистрация: 11.06.2019
Сообщений: 30
По умолчанию

таблицу 313х63 обработал за 3 сек
бетон вне форума Ответить с цитированием
Старый 18.11.2020, 01:50   #9
бетон
Пользователь
 
Регистрация: 11.06.2019
Сообщений: 30
По умолчанию

IgorGO,
подскажите, куда или вместо какой строки кода вставить
бетон вне форума Ответить с цитированием
Старый 18.11.2020, 01:50   #10
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,377
По умолчанию

можно сделать за 1/100 секунды
в сообщении #5 я поправил 1 строку в макросе
41001804815208 - ЮMoney бывш.Яндекс-кошелек благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть код на Python, нужно построить диаграмму взаимодействия, код в теме aliceliddell Помощь студентам 0 22.05.2018 14:28
пытаюсь переписать код из С++ в питон. Код внутри. Верно ли я делаю? clav9nski Python 2 08.10.2017 21:34
[C] Объяснить код код для определения пятизначного палиндром числа raider21 Помощь студентам 7 01.02.2017 17:23
Программно изменить код страницы(как в Опере через исходный код) igrok111 Работа с сетью в Delphi 7 20.04.2013 22:46
Доп.код,обратный код,прямой код вычисления Lukas077 Помощь студентам 0 20.03.2011 12:07


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS