Excel I';m使用特定列值排序数据时出错

Excel I';m使用特定列值排序数据时出错,excel,vba,Excel,Vba,这里我想使用I列数据中的数据对数据范围(A1:K17)进行排序。。但这里我得到了一个错误: 运行时错误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" &

这里我想使用I列数据中的数据对数据范围(A1:K17)进行排序。。但这里我得到了一个错误:

运行时错误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

如果
数据表
处于活动状态并处于选中状态,则您的代码在我的机器上运行良好。为了确保不管怎样都能正常工作,您需要在排序语句中完全限定工作表:

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

您需要完全限定与
工作表(“数据表”)
相关的所有对象

以及:

事实上,在工作表(“数据表”)中使用
语句更容易

代码

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

您的
LastRow=工作表(“数据表”).Cells(Rows.Count,1)。End(xlUp)。Row
工作表(“数据表”)
不完全一致,它必须是
LastRow=工作表(“数据表”).Cells(工作表(“数据表”).Rows.Count,1)。End(xlUp)。Row
您缺少了一点
-
-
.Cells(Rows.Count,1)。End(xlUp).Row
应该是
.Cells(.Rows.Count,1).End(xlUp).Row
谢谢@ShaiRado,我已经添加了它。在这里“与工作表(“数据表”)。通过使用此函数,我们只能获得静态。您能帮我获得任何工作表的动态结果吗。。?
Range("A1:K" & LastRow)
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