2016-07-27 107 views
-2

我是VBA的新手,很难搞清楚这段代码。我在做一个在线课程,我按照相同的步骤,但不知何故,我得到一个错误。我最近安装了Excel 2013和不知道如果多数民众赞成在issue.I试图把.Range(“A4”),但给了我“无效的或不合格的参考”错误范围类的排序方法失败

Sub DivisionSort() 
' 
' Sort List by Division Ascending 
' 

' 
    Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess, _ 
     OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
     DataOption1:=xlSortNormal 

End Sub 

Sub CategorySort() 
' 
' Sort List by Category Ascending 
' 

' 
    Selection.Sort Key1:=Range("B4"), Order1:=xlAscending, Header:=xlGuess, _ 
     OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
     DataOption1:=xlSortNormal 

End Sub 

Sub TotalSort() 
' 
' Sort List by Total Sales Ascending 
' 

' 
    Selection.Sort Key1:=Range("F4"), Order1:=xlAscending, Header:=xlGuess, _ 
     OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
     DataOption1:=xlSortNormal 

End Sub 


Public Sub SortList() 
    Dim userinput As String 
    userinput = InputBox("1=Sort by Division, 2=Sort by Category,3=Sort by Total") 
    If userinput = "1" Then 
    DivisionSort 
    ElseIf userinput = "2" Then 
    CategorySort 
    ElseIf userinput = "3" Then 
    TotalSort 

    End If 
End Sub 
+0

Selection.Range(“A4”) – Slai

+0

还没working.Its给予同样的错误:( –

+0

我不能重现这个错误,但我得到“Range类的排序方法失败“错误如果只选择了一个单元格并且在选择了多个单元格的情况下工作 – Slai

回答

1

尽量避免使用“选择”的。尝试,而不是一个完整的参考:

ThisWorkbook.Sheets("Sheet1").Range("Table1").Sort 
+1

虽然准确,但不能真正对一格的范围:P – RGA