Excel VBA运行时错误1004

Aar*_*ron 6 excel vba excel-vba

我正在使用VBA for 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
Run Code Online (Sandbox Code Playgroud)

Mot*_*tes 4

排序依据框是空白的,这是你的问题。我从未像您那样使用过 Sort 对象,但我可以看到您没有定义键或排序依据的范围,只是定义要排序的范围。应该定义一个键,例如 Range("A4") 或其他东西。我查了一下,里面应该有.sortfields.add(range),比如:

'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
Run Code Online (Sandbox Code Playgroud)

我使用排序功能如下:

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
Run Code Online (Sandbox Code Playgroud)