嗨我需要这段代码的帮助,在一行中我有几周(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
答案 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)。