Операция сортировки с использованием VBA? - PullRequest
0 голосов
/ 01 августа 2011

Как выполнить операцию сортировки с использованием кода VBA?Любые определенные макросы, чтобы выполнить это?

Я должен отсортировать мой столбец B в порядке возрастания, в котором есть значения.И столбец C, в котором есть даты и мода, самая старая и самая новая.

1 Ответ

5 голосов
/ 01 августа 2011

Я настоятельно рекомендую вам поиграть с макро-рекордером.Если вы не видите вкладку разработчика в Excel, перейдите к параметрам Excel и она должна быть на вкладке «Популярные».Нажмите, чтобы включить его.

Нажмите «Запись макроса», затем сделайте то, что вы хотите сделать (например, выделите столбец и нажмите «Сортировка» на ленте и отсортируйте по возрастанию), затем остановите запись.Перейдите в VBA (Alt + F11) и просмотрите полученный код, чтобы узнать синтаксис о том, как написать ту же функцию.

Например, даты сортировки приведут к чему-то вроде этого:

Sub Macro1()
    Columns("F:F").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("F1:F5"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("F1:F5")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Поскольку вы уже выберете столбец, который хотите отсортировать, при запуске макроса, вы можете очистить код примерно так:

Sub SortAscending()
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Сортировка дат может быть выполнена с теми же кодами, так какв порядке возрастания:

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

Кроме того, в Excel VBA есть множество книг, и я рекомендую вам взять одну в книжном магазине или в цифровом виде.Большинство книг проведут вас через основы понимания основ VBA, основных ключевых слов, использования рекордера, а затем, в конце концов, достаточно далеко, чтобы вы могли написать свой собственный код (код рекордера вряд ли оптимизирован или совершенен, но отлично подходит для изучения формулировок(синтаксис) для выполнения некоторых функций листа).

...