排序特定范围VBA

时间:2017-10-17 16:41:43

标签: vba excel-vba excel

当用户从Excel中的用户表单中选中复选框时,我尝试根据特定条件对范围进行排序。

用户可以选择4个复选框(每个复选框将对特定范围进行排序)。我已经尝试了一些方法,似乎无法弄清楚,我一直在寻找" Object Required"运行时错误

Private Sub btnConfirm_Click()

    If (chkbxValid.value) Then
        SortData (Range("H4:I1000"))
    End If
    If (chkbxValidDuplicate.value) Then
        SortData (Range("K4:L1000"))
    End If
    If (chkbxInvalid.value) Then
        SortData (Range("N4:O1000"))
    End If
    If (chkbxInvalidDuplicate.value) Then
        SortData (Range("Q4:R1000"))
    End If

End Sub

然后是第二段代码

Private Function SortData(rng As Range)

    FR = 1
    FC = 1
    LR = 1000
    LC = 2
    SC = 2

    Sheets("TRACKER_2.0").rng(cells(FR, FC), cells(LR, LC)).Sort Key1:=Range(cells(FR, SC), cells(LR, SC)), Order1:=xlAscending

End Function

1 个答案:

答案 0 :(得分:1)

对于排序,还有更多标准:

fr = 1 'first row
fc = 1 'first column
lr = 200 'last row
lc = 10 'last column
sc = 4 'sort column
Range(Cells(fr,fc),Cells(lr,lc)).Sort key1:=Range(Cells(fr,sc),CellS(lr,sc)), order1:=xlAscending, Header:=xlNo

使用范围(“A1”)样式格式:

lr = 200 'last row
Range("A1:J" & lr).Sort key1:=Range("D1:D" & lr), order1:=xlAscending, Header:=xlNo