у меня есть некоторые данные в электронной таблице excel, которые мне нужно переформатировать. Существующий формат в строках. Желаемый формат-через запятую.
в другом месте на superuser я нашел сценарий 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). Я хотел бы скопировать в буфер обмена.
Я надеялся, что что-то вроде s.Копировать или s.PutInClipboard будет работать, но я получаю ошибки.
данные выглядят так:
Topic 1
Mike
Tony
Dave
Topic 2
Steve
Joe
Sally
Topic 3
...
желаемый результат будет такой:
Mike, Tony, Dave
(в буфер обмена)
затем на следующий итерация:
Steve, Joe, Sally
(в буфер обмена)