下面编码的目标是选择和排序不应排序的行之间的未知长度范围。
我希望排序变量为P列
B3将始终是我的范围的左上角。
P列始终是我的范围的右边界。
我知道另一种方法是使用一个等于范围长度的变量,但使用选定的单元格作为右下边界要简单得多。
我发现下面的代码存在两个问题。第9行将范围标识为“P2:P300”,这在第12行中再次发生,但我不能使用“Activecell”,因为代码中此时正确的单元格未激活。
有什么建议吗?对于那些邋/ /不必要的代码道歉,我一直在这些论坛上大肆窃取。
Private Sub CommandButton4_Click()
ActiveCell.End(xlToRight).Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(-1, 0).Select
Range(ActiveCell, "B3").Select ''''''Selects last cell in range
'''Following should sort selected range according to the values in the "P" column
ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Add Key:=Range("P2:P300") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet3").Sort
.SetRange Range("B1:P300")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub