Код Excel для преобразования таблицы из нескольких столбцов в отдельные столбцы с повторяющимся рисунком - PullRequest
0 голосов
/ 13 декабря 2018

Предположим, у вас есть диапазон столбцов (таблица) в Excel, например:

enter image description here

и вам необходимо преобразовать его в такой формат:

enter image description here

Я искал VBA-скрипт, например здесь , и на рынке есть несколько инструментов, но не могу заставить его работать вжелаемый вывод.

Как это можно сделать с помощью обычной формулы Excel или скрипта VBA?

1 Ответ

0 голосов
/ 13 декабря 2018

Попробуйте:

Option Explicit

Sub test()

    Dim LC As Long, LR As Long, Number As Long, i As Long, j As Long, NR As Long
    Dim str As String

    'Everything included in "With Statement" refer to Sheet1
    With ThisWorkbook.Worksheets("Sheet1")

        'Find Last Column
        LC = .Cells(1, .Columns.Count).End(xlToLeft).Column

        'Find Las Row
        LR = .Cells(.Rows.Count, "A").End(xlUp).Row

        'Loop from column two to last column
        For i = 2 To LC

            'Number get the value of row 1 and column i
            Number = .Cells(1, i).Value

            'Loop from row two to last row of each i
            For j = 2 To LR

                'str get the value of row j in column 1
                str = .Cells(j, 1).Value

                    NR = .Cells(.Rows.Count, "A").End(xlUp).Row

                    .Cells(NR + 1, 1).Value = Number
                    .Cells(NR + 1, 2).Value = str
                    .Cells(NR + 1, 3).Value = .Cells(j, i).Value


            Next j

        Next i

    End With

End Sub

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...