Excel VBA - уточнение - PullRequest
       0

Excel VBA - уточнение

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

Мне просто интересно, есть ли у кого-нибудь совет, что делает этот фрагмент кода VBA.Мой коллега недавно ушел и не прокомментировал ни одной из своих работ, поэтому я немного запутался.

Есть некоторый код для сортировки некоторых ячеек, но я не уверен, как он знает, что сортировать, так какуказан диапазон, который не является данными, которые я хочу отсортировать.Я думаю, что что-то упустил, но ничто в Интернете, похоже, не очень хорошо объясняет Excel VBA.

Код выглядит следующим образом:

    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.ActiveSheet.SORT.SortFields.Clear
    ActiveWorkbook.ActiveSheet.SORT.SortFields.Add Key:=ActiveCell, _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.ActiveSheet.SORT
        .SetRange ActiveCell.Range("A1:A550")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveCell.Offset(0, 1).Range("A1").Select

Я знаю, что лучшие вещи задают критериииспользоваться для сортировки данных, но я не уверен, почему диапазон («A1: A550») ​​существует, так как сортируемые данные обычно начинаются где-то около ячейки C15.Код просто говорит: «Используйте текущую ячейку в качестве A1, выберите следующие 550 строк вниз и отсортируйте данные соответствующим образом»?

Спасибо всем заранее.

1 Ответ

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

Строка .SetRange ActiveCell.Range("A1:A550") в этом коде равна Относительно к диапазону, определяемому строкой Range(Selection, Selection.End(xlDown)).Select - и просто говорит об использовании первых 550 строк.(Если выбрано менее 550 ячеек, это расширяет выбор, чтобы соответствовать, так что первая строка фактически не нужна)любой «посторонний» код:

Range(Selection.Cells(1,1), Selection.Cells(550, 1)).Sort Selection, xlAscending, _
    Header:=xlNo, Orientation:=xlSortColumns, SortMethod:=xlPinYin
ActiveCell.Offset(0, 1).Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...