Скопируйте столбец A, вставьте для каждого другого столбца, затем сортируйте - PullRequest
0 голосов
/ 10 апреля 2019

Мне нужна помощь в создании кода VBA, который принимает данные, компилирует вставку столбца даты (столбец A) для каждого, затем для каждой пары столбцов сортирует его.

Данные начинаются примерно так

Date, A, B, C, ...
01/02/2019, 100, 110, 120, ...
02/02/2019, 101, 107, 124, ...
03/02/2019, 102, 107, 123, ...
04/02/2019, 101, 108, 123, ...

Сначала следует указать дату согласно

Date, A, Date, B, Date, C, ...
01/02/2019, 100, 01/02/2019, 110, 01/02/2019, 120, ...
02/02/2019, 101, 02/02/2019, 107, 02/02/2019, 124, ...
03/02/2019, 102, 03/02/2019, 107, 03/02/2019, 123, ...
04/02/2019, 101, 04/02/2019, 108, 04/02/2019, 123, ...

Затем столбцы должны быть разбиты на пары, и отсортированы по второму столбцу, т.е.

.
Date,  A,  Date,  B,  Date,  C,  ...
01/02/2019, 100,  02/02/2019, 107,  01/02/2019, 120,  ...
02/02/2019, 101,  03/02/2019, 107,  03/02/2019, 123,  ...
04/02/2019, 101,  04/02/2019, 108,  04/02/2019, 123,  ...
03/02/2019, 102,  01/02/2019, 110,  02/02/2019, 124, ...

Пока у меня есть код, который находит последний столбец в строке, который возвращает последний столбец в виде ссылки на строку (например, «GM»)

Function ColumnLetter() As String
    Dim sht As Worksheet
    Dim LastColumn As Long
    Dim LastColumnStr, ColumnPaste As String
    Dim p As Long

    Set sht = ThisWorkbook.Worksheets("srtData")

    LastColumn = sht.Range("A1").CurrentRegion.Columns.Count

    Dim n As Long
    Dim c As Byte
    Dim s As String

    n = LastColumn
    Do
        c = ((n - 1) Mod 26)
        s = Chr(c + 65) & s
        n = (n - c) \ 26
    Loop While n > 0
    ColumnLetter = s
End Function

Однако я понятия не имею, как выполнить итерацию, а затем отсортировать по второму столбцу. В идеале я просто хочу иметь такую ​​функцию, как Function sortallData(dim wsTest as String) где я могу просто вызвать функцию, введя имя листа.

1 Ответ

0 голосов
/ 27 июня 2019

В конце концов, я последовал совету Тимса. Я разделил это на 3 различных сценария, один итерируется, выбирая столбец, вставляя и вставляя. Затем сортируется каждый столбец.

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