我有一份姓名、公司、电话号码、地址和电子邮件的列表。但在同一家公司工作的每个名字都在同一个单元格中。当然,这些名字的其他信息(如电话号码、地址等)都是相同的。
我想把每个名字写在另一个名字下面,但我必须在它的侧边栏写下它的信息。实际上,我的名单很长,我今天无法完成它。我不知道该怎么做。
答案1
我现在不在装有 Excel 的 Windows 计算机前,但我相信此代码应该创建一个新的工作表,并将数据复制到新工作表中,将名称分成单独的行。
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 命令将这多个列转换为具有单个列的多个行。