Tenho uma lista de nome, empresa, telefone, endereço e e-mail. Mas cada nome que trabalha na mesma empresa está na mesma cela. Claro, as outras informações desses nomes, como número de telefone, endereço, etc., são as mesmas.
Quero escrever cada nome abaixo do outro, mas tenho que escrever a célula lateral de informações dele. Na verdade, minha lista é muito longa e não posso terminá-la hoje. Eu não sei como fazer.
Responder1
Não estou na frente de um computador Windows com Excel no momento, mas acredito que esse código deva criar uma nova planilha e copiar os dados para a nova planilha, dividindo os nomes em linhas 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
Responder2
Eu usaria o suplemento Power Query para isso. Você pode iniciar uma consulta a partir de uma tabela do Excel.
O comando Split pode ser usado para dividir uma coluna com base em um delimitador (por exemplo, vírgula). Então eu usaria o comando Unpivot para transformar essas múltiplas colunas em múltiplas linhas com uma única coluna.