У меня есть лист данных Excel, как это;
Я хотел бы, чтобы столбец b
был преобразован в 3 новых столбца, поэтому есть две строки, такие как URL1, Name, address, email
и URL3, Name, address, email
.
У меня есть лист данных Excel, как это;
Я хотел бы, чтобы столбец b
был преобразован в 3 новых столбца, поэтому есть две строки, такие как URL1, Name, address, email
и URL3, Name, address, email
.
Откройте Visual Basic (нажмите Alt+F11)
Вставьте модуль и вставьте следующий код в этот модуль
Sub Macro()
Dim i As Integer, j As Integer, k As Integer, LastRow As Integer
LastRow = Sheets(1).Range("A1").End(xlDown).Row
Sheets(2).Cells(1, 1).Value = Sheets(1).Cells(1, 1).Value
Sheets(2).Cells(1, 2).Value = Sheets(1).Cells(1, 2).Value
k = 1
j = 2
For i = 1 To LastRow
If Sheets(1).Range("A" & i).Value = Sheets(1).Range("A" & (i + 1)).Value Then
j = j + 1
Sheets(2).Cells(k, j).Value = Sheets(1).Cells(i + 1, 2).Value
Else
k = k + 1
Sheets(2).Cells(k, 1).Value = Sheets(1).Cells(i + 1, 1).Value
Sheets(2).Cells(k, 2).Value = Sheets(1).Cells(i + 1, 2).Value
j = 2
End If
Next i
End Sub
Этот код проверяет сходство между ячейками в первом столбце, если содержимое ячейки совпадает, тогда значение в ячейке рядом с ним будет скопировано на другой лист. Если содержимое ячейки в первом столбце не совпадает, оно будет считаться следующей точкой данных.