1
ワークシートを最初の条件に基づいてオートフィルタするコードがあります。 条件文は(私は明らかにヘッダをインクルードする必要はありません)私は助けを必要とするところ、それはデータが2行目の最初のセルにある場合でもerroringし続けている:オートフィルタ - 表示セルの2番目の行が空白であるかどうかを調べる
With ActiveSheet
.AutoFilterMode = False
With .Range("A1:F1")
.AutoFilter Field:=1, Criteria1:="FirstTest"
'See if first cell in second row is blank
If (.Offset(2,1).SpecialCells(xlCellTypeVisible).Value = "") Then
'if blank, change criteria
.AutoFilter Field:=1, Criteria1:="SecondTest"
End If
End With
End With
私が知っています複数の条件に対してVBA.Arrayを使用することはできますが、これはより複雑になります。今度は、2行目の可視データを参照するだけで済みます。
ありがとうございました。
申し訳ありませんが、これはエラーなしで働いてではなく、正確されます。 私は画面上に10行(1つは見出し)を返し、それは126を返します。私が3に見えるようにフィルタリングすれば、それは18を返します。 –
ああ!それは細胞を計数していて、列は計数していません。ヤッツェー。ありがとうございました。あなたの解決策は間違いありませんでした。 –
.Rows.Countは時々奇妙な結果を返すことがありましたが、これを修正するために、セルの数を私が持っていたカラムの数で割っただけです。 rowCount = .Parent.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count/6 –