Accessから日付の範囲を取得し、データをフィルター処理して、フィルター処理されたデータに基づいてグラフを作成するVBAスクリプトに取り組んでいます。フィルタリングされたデータは、グラフがからデータを取得する別のシートに送られます。 SQLステートメントを使用してAccessからデータを取得できますが、Excelのオートフィルターでエラーが発生します。これが私が持っているものです...
Sheet3.Range("F4:F500").AutoFilter(, "Riveter 01").Copy Destination:=Sheet2.Range("A5")
アプリ定義またはオブジェクト定義のエラーが発生し、その理由がわかりません。これは適切な方法ですか、それとももっと簡単な方法がありますか?
ありがとう!
PS:このフィルターは22の固有のマシンで発生するため、マシンごとにループを実行することを計画していました。それが最速または適切な方法ではない場合は、私に知らせてください。
これを2つの部分に分割する必要があります。フィルタリングしてからコピー/貼り付けします。下記参照:
With Sheet3
.AutoFilterMode = False
With .Range("F4:F500")
.AutoFilter Field:=1, Criteria1:="Riveter 01"
.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet2.Range("A5")
End With
End With
フィルタを削除するには:
On Error Resume Next
Sheet3.ShowAllData
On Error GoTo 0
エラー時再開次は、エラーをスキップするためのフィルターが存在しない場合です。一般的な解決策を探している人は、Sheet3とSheet2を使用することに注意してください。
私はあなたが2つの別々のステップでこれをしなければならないと思います:
ここでの答えは、これを行う方法の優れた例です。 マクロをオートフィルターし、表示されているデータのみをコピーして、次に使用可能な行に貼り付けます