Excel 按列对数据进行排序

Excel 按列对数据进行排序,excel,vba,columnsorting,Excel,Vba,Columnsorting,早些时候,代码运行得很好,但现在我再次面临排序字段中的问题。错误(需要运行时错误424对象,排序值为空 ) 应该sortRange=WorksheetFunction.Concat(“A1:”,“AM”,LR)besortRange=WorksheetFunction.Concat(“A1”,“AM”&LR)我尝试在.SetRange.SROh处修复,但仍然出现错误(运行时错误450-参数数目错误或属性分配无效)!你不需要那个。使用.SetRange SR(这假设SR是一个有效的范围。我认为您应

早些时候,代码运行得很好,但现在我再次面临排序字段中的问题。错误(需要运行时错误424对象,排序值为空 )


应该
sortRange=WorksheetFunction.Concat(“A1:”,“AM”,LR)
be
sortRange=WorksheetFunction.Concat(“A1”,“AM”&LR)
我尝试在.SetRange.SROh处修复,但仍然出现错误(运行时错误450-参数数目错误或属性分配无效)!你不需要那个
。使用
.SetRange SR
(这假设
SR
是一个有效的范围。我认为您应该实际执行
Set SR=range(“A1:AM”&LR)
。否则我认为您的
sortRange
将是这些单元格中的一个值字符串,而不是一个有效的“字符串范围”?嗨,Bruce,您提到的设置SR仍然会收到相同类型的错误,并且SR在您编写的代码中没有值,并且
SR.Select
deleted,该错误行应该是
.SetRange SR
。它在这里起作用。如果不起作用,
?SR.Address
在即时窗口中返回什么。
ThisWorkbook.Sheets("Sheet1").Activate
Dim LR As Long
Dim SR As Range

LR = Range("D1").SpecialCells(xlCellTypeLastCell).Row
Set SR = Range("A1:AM" & LR)

With Sort
    .SortFields.Clear
    .SortFields.Add Key:= _
    Range("D1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    .SetRange.SR
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With