2016-09-30 3 views
0

내 인벤토리 시트에서 시트 (보관)를 열고 두 번째 시트의 데이터를 필터링 한 다음 필터링 된 데이터를 인벤토리의 시트로 복사하려고합니다. 필터링 된 데이터가 첫 번째 연속 범위에있는 행의 데이터 만 복사한다는 점을 제외하고는 모두 작동합니다. 내 코드는 다음과 같습니다.필터링 된 데이터를 사용하여 값 설정

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를 사용하여이 작업을 수행 할 수 있습니까? 아니면 복사 붙여 넣기 방법을 사용하고 있습니까?

답변

0

표를 사용하여 작업 할 때 보이는 셀을 databodyrange에 복사 할 수 있습니다.

아무 것도 활성화하거나 선택할 필요가 없습니다. 참조 된 파일 & 시트로 작업하면됩니다.

Sub Test() 

    Dim wrkBk As Workbook 
    Dim mOrder As Long 

    mOrder = 5 

    'You can reference the workbook without it being active. 
    Set wrkBk = Workbooks.Open("C:\Inventory\Archive.xlsm") 

    With wrkBk.Worksheets("Archive").ListObjects("Archive") 
     .Range.AutoFilter Field:=12, Criteria1:=mOrder 
     'Copy the DataBodyRange (Range would include the headers). 
     .DataBodyRange.Resize(, 11).SpecialCells(xlVisible).Copy Destination:=ThisWorkbook.Worksheets("RAM").Range("A2") 
    End With 

End Sub 
+0

감사합니다. 전에 databodyrange에 대해 들었습니다. 나는 그것을 지금 시도 할 것이다. .value는 클립 보드없이이 코드를 사용할 수 있습니까? – Scionara

+0

방금 ​​시도한 후 wrkBk.Worksheets ("Archive")를 사용하면 ListObjects ("Archive") 오류 '9' '아래 첨자가 있습니다. " – Scionara

+0

워크 시트의 지역 정보를 보았습니다. listobject'를 발견하고 거기에 앉아있는 'databodyrange'를 발견했습니다. 정상적인 범위와 동일한 정보가 들어 있으므로 시도해 보았습니다. 그래도 클립 보드를 사용합니다 ('Copy' 사용). –

관련 문제