0

Excel 2010 ワークボードに大量のデータを含むスプレッドシートがあります。このページは、組み込みのオートフィルターで並べ替えることができます。別のシートで、ソートの一部を行うボタンを作成しました。例えば:

Sub forsteKvartalAftaleIndgaet()

'
    Sheets("AMRM01").Select
    ActiveSheet.Range("$A$12:$P$76").AutoFilter Field:=2, Criteria1:="<01-04", _
        Operator:=xlAnd
    Sheets("Ark2").Select
End Sub

Sub andenKvartalAftaleIndgaet()
'

    Sheets("AMRM01").Select
    ActiveSheet.Range("$A$12:$P$76").AutoFilter Field:=2, Criteria1:=">01-04", _
        Operator:=xlAnd, Criteria2:="<01-07"
    Sheets("Ark2").Select
End Sub

これを行うと、シートにはその年の第 1 四半期と第 2 四半期が表示されます。次のように、年の第 3 四半期と第 4 四半期を示す 2 つのボタンがあります。

Sub TredjeKvartalAftaleIndgaet()
'

    Sheets("AMRM01").Select
    ActiveSheet.Range("$A$12:$P$76").AutoFilter Field:=2, Criteria1:=">01-07", _
        Operator:=xlAnd, Criteria2:="<01-10"
    Sheets("Ark2").Select
End Sub


Sub FjerdeKvartalAftaleIndgaet()
'

    Sheets("AMRM01").Select
    ActiveSheet.Range("$A$12:$P$76").AutoFilter Field:=2, Criteria1:=">01-10", _
        Operator:=xlAnd, Criteria2:="<31-12"
    Sheets("Ark2").Select
End Sub

私の問題: ボタン (第 2 四半期) を押すと、第 2 四半期がフィルタリングされて表示されます。しかし、「第 3 四半期」ボタンを押すと、第 2 四半期フィルターが削除され、第 3 四半期が表示されます。

オートフィルター ボタンのビルドで可能なように、両方のボタンを同時に押すことを可能にするある種の VBA コードを書くことは可能ですか?

私の言いたいことがよくわからない場合は、より良い説明を求めてください。

前もって感謝します

4

2 に答える 2

1

もしかしてこういうこと?それで、それは両方の方法に当てはまりますか?イーフ

1)最初に第 2 四半期を選択すると、第 2 四半期が表示され、次に第 3 四半期を押すと、第 2 四半期と第 3 四半期が表示されます。

2)最初に第 3 四半期を選択すると、第 3 四半期が表示され、次に第 2 四半期を押すと、第 2 四半期と第 3 四半期が表示されます。

:コードをテストしていないので、エラーが発生した場合はお知らせください:)

Dim strCrt1 As String, strCrt2 As String, strCrt3 As String, strCrt4 As String

Sub andenKvartalAftaleIndgaet()
    strCrt1 = ">01-04"
    strCrt2 = "<01-07"

    With Sheets("AMRM01")
        If strCrt4 <> "" Then
            .Range("$A$12:$P$76").AutoFilter Field:=2, _
            Criteria1:=strCrt1, Operator:=xlAnd, _
            Criteria2:=strCrt4
        Else
            .Range("$A$12:$P$76").AutoFilter Field:=2, _
            Criteria1:=strCrt1, Operator:=xlAnd, _
            Criteria2:=strCrt2
        End If
    End With
End Sub

Sub TredjeKvartalAftaleIndgaet()
    strCrt3 = ">01-04"
    strCrt4 = "<01-07"

    With Sheets("AMRM01")
        If strCrt1 <> "" Then
            .Range("$A$12:$P$76").AutoFilter Field:=2, _
            Criteria1:=strCrt1, Operator:=xlAnd, _
            Criteria2:=strCrt4
        Else
            .Range("$A$12:$P$76").AutoFilter Field:=2, _
            Criteria1:=strCrt3, Operator:=xlAnd, _
            Criteria2:=strCrt4
        End If
    End With
End Sub
于 2012-05-21T11:42:20.220 に答える
0

よくわかりませんが、単に第 2 四半期と第 3 四半期の両方を表示したいだけのようですね。そのためには独自のマクロが必要だと思います。

Sub secondAndThirdQuarter()

    Sheets("AMRM01").Select
    ActiveSheet.Range("$A$12:$P$76").AutoFilter Field:=2, Criteria1:=">01-04", _
        Operator:=xlAnd, Criteria2:="<01-10"
    Sheets("Ark2").Select

End Sub

探しているのと同じ結果が得られるのではないでしょうか? VBA を使用してフィルターでフィルター処理できるかどうかはわかりません。

于 2012-05-21T07:14:26.440 に答える