У меня есть список имени, компании, номер телефона, адрес и адрес электронной почты. Но каждое имя, которое работает в одной компании, находится в одной ячейке. Конечно, другие данные этих имен, такие как номер телефона, адрес и т.д., Такие же.

Я хочу написать каждое имя под другим, но я должен написать его информационную боковую ячейку. На самом деле, мой список очень длинный, и я не могу закончить его сегодня. Я не знаю, как это сделать.

Скриншот с описанием проблемы

2 ответа2

0

Я сейчас не перед компьютером с 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
0

Я бы использовал Power Query Add-In для этого. Вы можете запустить запрос из таблицы Excel.

Команда Split может использоваться для разделения столбца на основе разделителя (например, запятая). Затем я бы использовал команду Unpivot, чтобы превратить эти несколько столбцов в несколько строк с одним столбцом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .