У меня есть некоторые данные в таблице Excel, которые мне нужно переформатировать. Существующий формат в строках. Желаемый формат разделяется запятыми.
В другом месте на суперпользователе я нашел скрипт VBA, который помогает мне пройти 75% пути ...
Преобразовать столбец в список через запятую
Sub generatecsv()
Dim i As Integer
Dim s As String
i = 1
Do Until Cells(i, 1).Value = ""
If (s = "") Then
s = Cells(i, 1).Value
Else
s = s & "," & Cells(i, 1).Value
End If
i = i + 1
Loop
Cells(1, 2).Value = s
End Sub
Недостатки этого сценария для моего предполагаемого рабочего процесса в настоящее время:
Диапазон ячеек всегда должен быть в столбце 1. Мне нужно, чтобы скрипт брал ввод из выбранного диапазона в любом месте рабочего листа.
Вывод скрипта всегда отображается в ячейке (1,2). Я хотел бы скопировать его в буфер обмена.
Я надеялся, что что-то вроде с.Копировать или с.PutInClipboard будет работать, но я получаю ошибки.
Данные выглядят так:
Topic 1
Mike
Tony
Dave
Topic 2
Steve
Joe
Sally
Topic 3
...
Желаемый результат будет:
Mike, Tony, Dave
(в буфер обмена)
Тогда на следующей итерации:
Steve, Joe, Sally
(в буфер обмена)