Ich habe eine Liste mit Namen, Unternehmen, Telefonnummer, Adresse und E-Mail. Aber jeder Name, der in demselben Unternehmen arbeitet, steht in derselben Zelle. Natürlich sind die anderen Informationen dieser Namen wie Telefonnummer, Adresse usw. gleich.
Ich möchte jeden Namen unter den anderen schreiben, aber ich muss die Informationen in die Zelle neben dem Namen schreiben. Meine Liste ist eigentlich sehr lang und ich kann sie heute nicht fertigstellen. Ich weiß nicht, wie ich das machen soll.
Antwort1
Ich sitze gerade nicht vor einem Windows-Computer mit Excel, aber ich glaube, dieser Code sollte ein neues Arbeitsblatt erstellen und die Daten in das neue Blatt kopieren, wobei die Namen in separate Zeilen aufgeteilt werden.
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
Antwort2
Ich würde hierfür das Power Query Add-In verwenden. Damit kann man aus einer Excel-Tabelle eine Abfrage starten.
Mit dem Befehl „Teilen“ kann eine Spalte anhand eines Trennzeichens (z. B. Komma) geteilt werden. Dann würde ich den Befehl „Unpivot“ verwenden, um diese mehreren Spalten in mehrere Zeilen mit einer einzigen Spalte umzuwandeln.