У меня есть список имен, компаний, телефонных номеров, адресов и электронной почты. Но каждое имя, которое работает в одной и той же компании, находится в одной и той же ячейке. Конечно, остальная информация этих имен, такая как телефонные номера, адреса и т. д., та же самая.
Я хочу написать каждое имя под другим, но мне нужно написать его информационную ячейку сбоку. На самом деле, мой список очень длинный, и я не смогу закончить его сегодня. Я не знаю, как это сделать.
решение1
Сейчас я не нахожусь перед компьютером Windows с Excel, но считаю, что этот код должен создать новый рабочий лист и скопировать данные на новый лист, разделив имена на отдельные строки.
Sub CopyRowsAndSplitNames
Dim srcSheet As Excel.Worksheet
Set srcSheet = Excel.Application.Sheets("Sheet1") ' Change this to whatever your worksheet is called
Dim dstSheet As Excel.Worksheet
Set dstSheet = Excel.Application.Sheets.Add()
srcSheet.Rows(1).Copy dstSheet.Rows(1)
Dim dstRow as Integer
dstRow = 1
Dim strName As String
Dim strNames As String()
Dim srcRow as Integer
For srcRow = 2 to srcSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
strNames = Split(srcSheet.Cells(row, 3).Value, ",")
For Each strName in strNames
dstRow = dstRow + 1
srcSheet.Row(srcRow).Copy dstSheet.Row(dstRow)
dstSheet.Cells(dstRow, 3).value = strName
Next
Next
End Sub
решение2
Я бы использовал для этого надстройку Power Query. Вы можете начать запрос из таблицы Excel.
Команда Split может быть использована для разделения столбца на основе разделителя (например, запятой). Затем я бы использовал команду Unpivot, чтобы превратить эти несколько столбцов в несколько строк с одним столбцом.