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