0
在庫シートからシート(アーカイブ)を開き、2番目のシートのデータをフィルタ処理し、フィルタ処理したデータをインベントリのシートにコピーしようとしています。フィルタリングされたデータが、最初の連続した範囲の行からのみデータをコピーする点を除いて、すべてが機能しています。私のコードは次の通りですフィルタリングされたデータを使用した設定値
Dim LastRow As Long
Dim nOoFrOWS As Long
Dim oSht As Worksheet
Workbooks.Open ("C:\Inventory\Archive.xlsm") '<- at opening a workbook it becomes the active one
Set oSht = ActiveWorkbook.Worksheets("Archive") '<-- set the destination worksheet in the activeworkbook
With ActiveSheet
.ListObjects("Archive").Range.AutoFilter Field:=12, Criteria1:=mOrder
nOoFrOWS = .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1 '# of rows in Inventory
End With
Unload Me
ThisWorkbook.Sheets("RAM").Range("A2:K" & nOoFrOWS).Value = oSht.Range("Archive[[QTY]:[RTK]]").SpecialCells(xlCellTypeVisible).Cells.Value
oSht.Parent.Close False
私は間違っていますか?
編集:それが適切かどうかわかりませんが、アーカイブの範囲(コピー元)はテーブル全体ではありません。私はより多くの行を持っていますが、これらは私がこのアプリケーションに必要なものです。
また、クリップボードなしで.valueを使用してこれを行う方法がありますかコピー貼り付け方法を使用していますか?
ありがとうございます。以前はdatabodyrangeについて聞いたことがありません。私は今それを試してみましょう。このコードは.valueのようにクリップボードなしで動作しますか? – Scionara
私はそれを試したところ、wrkBk.Worksheets( "Archive")を使用してListObjects( "Archive")にエラーが発生しました "9" "subscript out of range" – Scionara
ワークシート ' listobject'を見つけ、そこに座っている 'databodyrange'を見つけました。通常の範囲と同じ情報が含まれていたので、試しました。それはクリップボードを使用します( 'Copy'を使います)。 –