排序范围不确定的大小。

时间:2013-11-25 19:15:13

标签: excel sorting

下面编码的目标是选择和排序不应排序的行之间的未知长度范围。

我希望排序变量为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

0 个答案:

没有答案