Excel VBA Runtime Ошибка 1004 - PullRequest
       8

Excel VBA Runtime Ошибка 1004

6 голосов
/ 30 декабря 2011

Я использую VBA для Excel 2010 и случайно получаю следующую ошибку:

Ошибка времени выполнения "1004": "Ссылка на сортировку недопустима. Убедитесь, что она находится в пределах данных, которые вы хотитесортировать, и первое поле «Сортировать по» не является тем же или пустым. "

Это код

'Sort the active rows
With ActiveWorkbook.Worksheets("Product Backlog").Sort
    .SetRange Range("A4:F51")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

1 Ответ

4 голосов
/ 30 декабря 2011

Сортировка по полю пуста, это ваша проблема. Я никогда не использовал такой объект сортировки, как вы, но я вижу, что вы не определили ключ или диапазон для сортировки, а только диапазон для сортировки. Ключ должен быть определен, например, Range («A4») или что-то в этом роде. Я посмотрел его, он должен иметь .sortfields.add (диапазон), например:

'Sort the active rows

    With ActiveWorkbook.Worksheets("Product Backlog").Sort
        .SetRange Range("A4:F51")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin

        .SortFields.Add Key:=Range("A4:F51").Columns(1), SortOn:=xlSortOnValues, _
         Order:=xlDescending, DataOption:=xlSortNormal

        .Apply
    End With

Я использую функцию сортировки следующим образом:

ActiveWorkbook.Worksheets("Product Backlog").Range("A4:F51").Sort _
    Key1:= ActiveWorkbook.Worksheets("Product Backlog").Range("A4:F51").Columns(1), _
    Header:= xlYes, _
    Orientation:=xlSortColumns, _
    MatchCase:=False, _
    SortMethod:=xlPinYin
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...