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

Вход

Регистрация

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

 

= Мир MS Excel/Необходимо сцепить неизвестное заранее количество элементов. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Необходимо сцепить неизвестное заранее количество элементов. (Макросы/Sub)
Необходимо сцепить неизвестное заранее количество элементов.
Юрий_Нд Дата: Воскресенье, 26.05.2019, 20:27 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Доброго дня всем.
Необходимо сцепить неизвестное заранее количество элементов массива.
Подробно:
Существует одномерный текстовый массив набора случайных слов:
1 корова, 2 кошка, 3 яблоко, 4 воробей, 5 синица, 6 собака, 7 помидор, 8 сельдерей, 9 карась, 10 свинья.
Известны номера массива животных в этом списке: 1, 2, 6, 10.
Необходимо из этого составить предложение:
"Перечень животных в списке: корова, кошка, собака, свинья."
Но списки разные, и иногда нужно выдать предложение:
"Животных в списке нет."
Ещё раз повторю, в каждом списке я знаю номера животных, а следовательно и их количество.
Спасибо ___________ Юрий.
К сообщению приложен файл: 123-7.xlsm (14.5 Kb)


Сообщение отредактировал Юрий_Нд - Воскресенье, 26.05.2019, 20:28
 
Ответить
СообщениеДоброго дня всем.
Необходимо сцепить неизвестное заранее количество элементов массива.
Подробно:
Существует одномерный текстовый массив набора случайных слов:
1 корова, 2 кошка, 3 яблоко, 4 воробей, 5 синица, 6 собака, 7 помидор, 8 сельдерей, 9 карась, 10 свинья.
Известны номера массива животных в этом списке: 1, 2, 6, 10.
Необходимо из этого составить предложение:
"Перечень животных в списке: корова, кошка, собака, свинья."
Но списки разные, и иногда нужно выдать предложение:
"Животных в списке нет."
Ещё раз повторю, в каждом списке я знаю номера животных, а следовательно и их количество.
Спасибо ___________ Юрий.

Автор - Юрий_Нд
Дата добавления - 26.05.2019 в 20:27
_Igor_61 Дата: Воскресенье, 26.05.2019, 22:47 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Вариант:
К сообщению приложен файл: 6004613.xlsm (17.3 Kb)


Сообщение отредактировал _Igor_61 - Воскресенье, 26.05.2019, 23:14
 
Ответить
СообщениеВариант:

Автор - _Igor_61
Дата добавления - 26.05.2019 в 22:47
_Boroda_ Дата: Понедельник, 27.05.2019, 01:02 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16672
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Юрий, Вы не уточнили -
Цитата Юрий_Нд, 26.05.2019 в 20:27, в сообщении № 1 ()
Известны номера массива животных в этом списке: 1, 2, 6, 10.
известны откуда? Где эти данные? На листе, все в одной ячейке или в разных, прямо в макросе, они всегда такие или могут изменяться?
Допустим для простоты, что эти номера в А5 и ниже. Тогда так можно
[vba]
Код
Sub tt()
    ar1 = Cells(5, 4).Resize(Cells(Rows.Count, 4).End(3).Row)
    ar2 = Cells(5, 1).Resize(Cells(Rows.Count, 1).End(3).Row)
    raz_ = ", "
    On Error Resume Next 'если нет таких номеров в массиве 1
    For i = 1 To UBound(ar2)
        t_ = t_ & raz_ & ar1(ar2(i, 1), 1)
    Next i
    If t_ = Empty Then
        t_ = "Животных в списке нет"
    Else
        t_ = "Перечень животных в списке: " & Mid(t_, Len(raz_))
    End If
    Cells(5, 6) = t_
End Sub
[/vba]
К сообщению приложен файл: 123-7_1.xlsm (16.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЮрий, Вы не уточнили -
Цитата Юрий_Нд, 26.05.2019 в 20:27, в сообщении № 1 ()
Известны номера массива животных в этом списке: 1, 2, 6, 10.
известны откуда? Где эти данные? На листе, все в одной ячейке или в разных, прямо в макросе, они всегда такие или могут изменяться?
Допустим для простоты, что эти номера в А5 и ниже. Тогда так можно
[vba]
Код
Sub tt()
    ar1 = Cells(5, 4).Resize(Cells(Rows.Count, 4).End(3).Row)
    ar2 = Cells(5, 1).Resize(Cells(Rows.Count, 1).End(3).Row)
    raz_ = ", "
    On Error Resume Next 'если нет таких номеров в массиве 1
    For i = 1 To UBound(ar2)
        t_ = t_ & raz_ & ar1(ar2(i, 1), 1)
    Next i
    If t_ = Empty Then
        t_ = "Животных в списке нет"
    Else
        t_ = "Перечень животных в списке: " & Mid(t_, Len(raz_))
    End If
    Cells(5, 6) = t_
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 27.05.2019 в 01:02
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Необходимо сцепить неизвестное заранее количество элементов. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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