2017-04-03 60 views
0

在這裏,我要排序的數據範圍:在我列的數據使用數據(A1 K17)。但在這裏我發現了錯誤:我收到提示,同時使用特定的列進行排序數據值

RUNTIME ERROR 1004 APPLICATION DEFINED

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

你'LASTROW =工作表( 「中文手冊」)。將細胞(Rows.Count,1).END(xlUp).Row'不與'工作表(「中文手冊完全限定「)',它需要是'LastRow =工作表(」DataSheet「)。單元格(工作表(」DataSheet「).Rows.Count,1).End(xlUp).Row' –

回答

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 
+0

你缺少一點'.' - '.Cells(Rows.Count,1).End(xlUp).Row'應該是'.Cells(.Rows.Count,1).End(xlUp).Row' –

+0

謝謝..它的工作 –

+0

謝謝@ ShaiRado,我已經加入了。 – CLR

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 
相關問題