Excel 排序范围时需要对象
我正在尝试按列对范围进行排序:Excel 排序范围时需要对象,excel,vba,Excel,Vba,我正在尝试按列对范围进行排序: Private Sub sort_all_by_group() Dim last_row As Integer Dim selected_cells Dim sort_criterion last_row = find_last_row() With Worksheets(MAIN_SHEET) selected_cells = Range(.Cells(2, 1), .Cells(last_row, LA
Private Sub sort_all_by_group()
Dim last_row As Integer
Dim selected_cells
Dim sort_criterion
last_row = find_last_row()
With Worksheets(MAIN_SHEET)
selected_cells = Range(.Cells(2, 1), .Cells(last_row, LAST_COL))
sort_criterion = Range(.Cells(2, 2), .Cells(last_row, LAST_COL))
' Run-time error 424: Object required.
selected_cells.Sort key1:=sort_criterion, order1:=xlAscending, Header:=xlNo
End With
End Sub
在注释中,我指定了错误是什么
所选单元格是范围对象。如果所选单元格是范围,则必须使用set关键字。那么,适当地清除它也会很好
Private Sub sort_all_by_group()
Dim last_row As Integer
Dim selected_cells As Range
Dim sort_criterion As Range
last_row = find_last_row()
With Worksheets(MAIN_SHEET)
Set selected_cells = .Range(.Cells(2, 1), .Cells(last_row, LAST_COL))
Set sort_criterion = .Range(.Cells(2, 2), .Cells(last_row, LAST_COL))
selected_cells.Sort key1:=sort_criterion, order1:=xlAscending, Header:=xlNo
End With
End Sub