我寫了一個宏,它打開一個包含新數據的CSV文件,複製內容(減去標題行),並將其粘貼到主工作簿中。現在我需要它也排序整個數據集由樣品號(在主表中的所有數據),在列A中給出我試圖2種不同的方法:Excel VBA對一個範圍進行排序
Set rData = ThisWorkbook.Sheets("Data").Range("A1")
Set rData = Range(rData, rData.End(xlDown).Offset(0, 4))
rData.Sort Key1:=Range("A:A"), Order1:=xlAscending, Header:=xlYes 'Debug points here
此方法返回運行時錯誤1004 :「排序參考無效。」
Set rData = ThisWorkbook.Sheets("Data").Range("A1")
Set rData = Range(rData, rData.End(xlDown).Offset(0, 4))
ThisWorkbook.Sheets("Data").Sort.SortFields.Clear 'Debug points here
ThisWorkbook.Sheets("Data").Sort.SortFields.Add Key:=Range(_
"A:A"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ThisWorkbook.Sheets("Data").Sort
.SetRange Range(rData)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
此方法返回運行時錯誤9:「下標超出範圍」。
哪一行拋出錯誤? – 2015-03-30 18:58:52
我已經添加了對代碼的評論,以顯示哪些行會拋出錯誤。另外,我爲方法2編寫了錯誤代碼,因此已更新。 – 2015-03-30 19:05:59
嘗試'Set rData = Sheets(「Data」)。Range(「A1:D」&Sheets(「Data」)。UsedRange.Rows.Count)'擺脫'Set rData = Range(rData,rData.End xlDown).Offset(0,4))' – user1274820 2015-03-30 19:13:46