Я все еще очень новичок в VBA и не стал бы поднимать руку и говорить, что у меня это вообще хорошо получается, 99% всего, что я сделал до сих пор, было собрано из других решений, найденных здесь (в основном ) и в других местах. Я пытаюсь выбрать диапазон, а затем объединить. Звучит достаточно просто, и я просмотрел много сообщений о UDF, используя join / concat / transpose / et c.
Код, над которым я работаю в данный момент.
Sub ConcatThings()
Dim str() As String
Dim myRng As Range
Set myRng = Application.Selection
Set myRng = Application.InputBox("Select range of Stuff", "Select Stuff", "Maker of things", myRng.Address, Type:=8)
For Each myCell In myRng
If Len(myCell) Then
str = Join(myCell, ",")
ThisWorkbook.Sheets("general_report").Cells(2, 7) = str
End If
Next
End Sub
Я бы хотел, чтобы значения распечатывались на листе general_report в ячейке 2,7.
Когда я даю ему go, я получаю «Не могу назначить массиву» и он выделяет часть str = Join
.
Что я делаю не так?
Обновление 1. Вот макет листа, с которым я работаю (все значения были извлечены из воздуха)
_| A | B | C | D | E |
1|Jan | 2 | Grn| OSX|Bird|
2|Mar | 4 | Blu| PC |Frog|
3|Feb | 6 | Red| OSX|Dogs|
4|Nov | 0 | Wht| And|Cats|
5|Jun | 1 | Ylw| iOS|Worm|
При запуске макроса вы должны выбрать любой столбец под вопросом, и он напечатает следующее в ячейке 2,7 Grn, Blu, Red, Wht, Ylw