6

Accessから日付の範囲を取得し、データをフィルター処理して、フィルター処理されたデータに基づいてグラフを作成するVBAスクリプトに取り組んでいます。フィルタリングされたデータは、チャートがからデータを取得する別のシートに送られます。SQLステートメントを使用してAccessからデータを取得できますが、AutoFilterExcelでエラーが発生します。これが私が持っているものです...

Sheet3.Range("F4:F500").AutoFilter(, "Riveter 01").Copy Destination:=Sheet2.Range("A5")

アプリ定義またはオブジェクト定義のエラーが発生しますが、その理由がわかりません。これは適切な方法ですか、それとももっと簡単な方法がありますか?

PS:このフィルターは22台の固有のマシンで発生するため、マシンごとにループを実行することを計画していました。それが最速または適切な方法ではない場合は、私に知らせてください。

4

2 に答える 2

15

これを 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

On Error Resume Next は、エラーをスキップするフィルタが存在しない場合に使用します。一般的なソリューションを探している人は、Sheet3 と Sheet2 の使用に注意してください。

于 2012-12-19T16:35:05.220 に答える
0

これを2つの別々のステップで行う必要があると思います:

  1. データをフィルタリングする
  2. フィルタリングされたデータを別のシートにコピーする

ここでの回答には、これを行う方法の優れた例があります:マクロをオートフィルターし、表示されているデータのみをコピーして、次の利用可能な行に貼り付けます

于 2012-12-19T15:47:52.993 に答える