Вы можете сделать это с одной строкой кода, и вам не придется зацикливаться (намного НАМНОГО быстрее):
Range("B2").Formula = "'" & join(application.transpose(Range("A2:A" & range("A" & rows.count).end(xlup).row)),"', '") & "'"
Я предположил, что у вас есть заголовок в A1, поэтому он начался на A2, вы можете изменить его наА1, если хотите.
Я заметил, что вы попросили объяснить другой ответ так:
Код Игана будет проходить по каждой ячейке в столбце А и добавлять его к тому, что в настоящее время находится в ячейке В2.,Таким образом, он в основном добавляет к B2 значение ячейки, в которой он находится, в столбце A и ', '
каждый раз, когда цикл повторяется до тех пор, пока в нем не заканчиваются данные в столбце A. Он также помещает '
в начало и конец.
Мой код возьмет диапазон и транспонирует его в массив (данные уменьшаются, массив перемещается вбок, поэтому мы транспонируем его), затем он объединяет массив значений в одну строку.Мы делаем это, используя функцию JOIN
, и мы указываем ', '
как то, что она должна помещать между каждым элементом массива (разделителем).
Затем мы просто добавляем '
в начале иконец, так как его там не будет, и вуаля, одна строка соединенных значений без зацикливания.
Они фактически делают одно и то же, мой просто делает это за один раз, а не за раз за раз.