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