Tengo una lista de nombre, empresa, número de teléfono, dirección y correo electrónico. Pero cada nombre que trabaja en la misma empresa está en la misma celda. Por supuesto, el resto de la información de esos nombres, como el número de teléfono, la dirección, etc., son los mismos.
Quiero escribir cada nombre debajo del otro, pero tengo que escribir la celda lateral de información. En realidad, mi lista es muy larga y no puedo terminarla hoy. No sé cómo hacerlo.
Respuesta1
No estoy frente a una computadora con Windows con Excel en este momento, pero creo que este código debería crear una nueva hoja de trabajo y copiar los datos en la nueva hoja, dividiendo los nombres en filas separadas.
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
Respuesta2
Usaría el complemento Power Query para esto. Puede iniciar una consulta desde una tabla de Excel.
El comando Dividir se puede utilizar para dividir una columna según un delimitador (por ejemplo, coma). Luego usaría el comando Unpivot para convertir esas múltiples columnas en varias filas con una sola columna.