这里我想使用I列数据中的数据对数据范围(A1:K17)进行排序。但是这里我得到了错误:
RUNTIME ERROR 1004应用程序定义
在End Sub
之前的最后一行..任何人都可以帮助我吗?
Sub MySort()
Dim LastRow As Long
LastRow = Worksheets("DataSheet").Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:K" & LastRow).Sort Key1:=Range("I1:I" & LastRow), _
Order1:=xlAscending, Header:=xlNo
End Sub
答案 0 :(得分:0)
如果DataSheet
处于活动状态并已选中,则您的代码可以在我的计算机上正常运行。为确保无论如何都能正常工作,您需要在整个排序语句中完全限定表单:
Sub MySort()
Dim LastRow As Long
With Worksheets("DataSheet")
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A1:K" & LastRow).Sort Key1:=.Range("I1:I" & LastRow), _
Order1:=xlAscending, Header:=xlNo
End With
End Sub
答案 1 :(得分:0)
您需要完全限定与Worksheets("DataSheet")
相关的所有对象。
LastRow = Worksheets("DataSheet").Cells(Rows.Count, 1).End(xlUp).Row
和
Range("A1:K" & LastRow)
事实上,使用With Worksheets("DataSheet")
语句更容易。
<强>代码强>
Option Explicit
Sub MySort()
Dim LastRow As Long
With Worksheets("DataSheet")
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A1:K" & LastRow).Sort Key1:=.Range("I1:I" & LastRow), _
Order1:=xlAscending, Header:=xlNo
End With
End Sub