如何找到行中的具体数字?

时间:2015-02-02 21:20:09

标签: excel excel-vba excel-formula vba

嗨我需要这段代码的帮助,在一行中我有几周(52)并且每个单元格都有一个过滤器。有没有人知道如何在52周内删除长代码。

Private Sub CommandButton1_Click()

    If TextBox1.Value = "1" Then
        Range("E2").Select
        ActiveSheet.Range("$E$2:$X$13").AutoFilter Field:=1, Criteria1:="<>"
    End If

    If TextBox1.Value = "2" Then
        Range("F2").Select
        ActiveSheet.Range("$E$2:$X$13").AutoFilter Field:=2, Criteria1:="<>"
    End If
End Sub

img

1 个答案:

答案 0 :(得分:0)

这是我提出的解决方案,反映了tospig的建议:

Private Sub CommandButton1_Click()
    Dim FilterColumn As Integer
    FilterColumn = Val(TextBox1.Value)
    If (FilterColumn + 4) > 26 Then
        Range(Chr(64 + Int((FilterColumn + 4) / 26)) & Chr(64 + FilterColumn + 4 - (26 * Int((FilterColumn + 4) / 26))) & "1").Select
    Else
        Range(Chr(64 + FilterColumn + 4) & "1").Select
    End If
    ActiveSheet.Range("$E$2:$BD$13").AutoFilter Field:=FilterColumn, Criteria1:="<>"
End Sub

请注意范围内的+4以补偿表格的偏移量。希望这有助于即使它在聚会上有点晚了。欢呼声,

编辑:更改了脚本,因为没有考虑过Z:Z的列(AA:AA,AB:AB一路到BD:BD)。