• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AutoFilterについて)

AutoFilterについてのコードの問題

このQ&Aのポイント
  • 質問者は、AutoFilterを使用してデータを抽出し、件数をカウントするVBAコードを作成しましたが、一部の値が正しく表示されない問題が発生しました。
  • 質問者が作成したVBAコードは、指定した条件でデータを抽出し、表示されたデータの件数を数える機能がありますが、一部の条件において正しく動作していないようです。
  • 質問者が作成したVBAコードは、特定の条件に基づいてデータを抽出し、別のシートに表示されたデータの件数を表示しますが、一部の場合において正確な結果が表示されない問題が発生します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.4

あと If r1 = 1 Then countdata = 0 Else countdata = Range(Cells(2, 1), Cells(r, 1)).SpecialCells(xlCellTypeVisible).Count End If を countdata = 0 If r1 <> 1 Then countdata = Range(Cells(2, 1), Cells(r1, 1)).SpecialCells(xlCellTypeVisible).Count End If にするとかもありだと思います。

Japan20121012
質問者

お礼

問題を解決することができました。 有り難う御座います。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.5

それと On Error Resume Next を、いったん外してみたらいかがでしょう

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.3

> test3は該当するデータがない結果です。 実行してみましたがセル(4,6)は0になりますよ。 r1もA列だったのですね r1 = Range("A1").SpecialCells(xlCellTypeLastCell).Row を r1 = Range("E1").SpecialCells(xlCellTypeLastCell).Row にしてみるとか ActiveSheet.ShowAllData をブレークポイントにして実際のフィルターされた状態を確認してみるとかしてみてはいかがですか。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.2

あと A列の最後とE列の最後が同じでなければ countdata = Range(Cells(2, 1), Cells(r, 1)).SpecialCells(xlCellTypeVisible).Count の Cells(r, 1) は Cells(r1, 1) じゃないでしょうか。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.1

> test1で抽出 コードは > Range("A1").AutoFilter Field:=5, Criteria1:="test3" testとtest3が同じ数だけあったということではないのですか。

Japan20121012
質問者

お礼

説明が不足していて申し訳ありません。 test3は該当するデータがない結果です。 セル(4,6)に0が表示されればよいのですが セル(2,6)の値が表示されてしまいます。

すると、全ての回答が全文表示されます。

関連するQ&A