У меня есть лист Excel с такими строками:

Fruit     | Apple  | Banana | Grape | Peach
Vegetable | Cabbage| Lettuce| Carrot|

и хотел бы, чтобы выходные данные из двух столбцов дублировали индекс (первый столбец):

Fruit     | Apple
Fruit     | Banana
Fruit     | Grape
Fruit     | Peach
Vegetable | Cabbage
Vegetable | Lettuce
Vegetable | Carrot

Простота использования важнее, чем эффективность, поскольку данные невелики, а пользователи неопытны. Спасибо

1 ответ1

2

Если у нас есть это в Листе 1:

и запустите этот короткий макрос:

Sub ReOrganize()
    Dim sh1 As Worksheet, sh2 As Worksheet
    Set sh1 = Sheets("Sheet1")
    Set sh2 = Sheets("Sheet2")
    Dim N As Long, M As Long, i As Long, j As Long, K As Long
    Dim t1 As String, t2 As String
    N = sh1.Cells(Rows.Count, "A").End(xlUp).Row
    K = 1

    For i = 1 To N
        t1 = sh1.Cells(i, 1).Value
        M = sh1.Cells(i, Columns.Count).End(xlToLeft).Column
        For j = 2 To M
            sh2.Cells(K, 1).Value = t1
            sh2.Cells(K, 2).Value = sh1.Cells(i, j)
            K = K + 1
        Next j
    Next i
End Sub

Мы получим это в Sheet2:

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