- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【VBA】オートフィルタ後のデータの扱いについて)
VBAのオートフィルタ後のデータを二次元配列に取得する方法
このQ&Aのポイント
- VBAでオートフィルタ後のデータをVariant型の変数に取得する際、二次元配列を使用する方法をご紹介します
- 例えば、[点数]列を[50点以上]でオートフィルタした結果を取得する場合、ActiveSheet.Range("A2:C42").SpecialCells(xlCellTypeVisible)を使用します
- しかし、現在のコードではオートフィルタ後のデータのうち、21行目のデータしか取得できない問題があります
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
飛び飛びのセル範囲をそういう具合に格納することはできません。 素直にエクセルの機能を使って Sub macro1() Dim arr As Variant Dim w As Worksheet, w0 As Worksheet Set w0 = ActiveSheet Set w = Worksheets.Add w0.Range("A2:C42").Copy Destination:=w.Range("A1") arr = w.Range("A1").CurrentRegion Application.DisplayAlerts = False w.Delete Application.DisplayAlerts = True End Sub のような格好で目的を達成するのが良いと思います。
お礼
やはり都合のいいものはないのですね。 ご回答ありがとうございました。