2012-12-19 9 views
4

나는 Access로부터 일정 범위의 날짜를 가져와 데이터를 필터링하고 필터링 된 데이터를 기반으로 차트를 만드는 VBA 스크립트 작업을하고 있습니다. 필터링 된 데이터는 차트가 데이터를 가져 오는 별도의 시트로 이동합니다. SQL 문을 사용하여 Access에서 데이터를 가져올 수는 있지만 Excel의 자동 필터 오류가 발생합니다. 여기에 내가 무엇을 가지고 ...VBA의 Excel 필터링 및 복사

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

그것은 응용 프로그램 정의 또는 개체 정의 오류를 제공하고 이유를 알 수 없습니다. 이것은 적절한 방법입니까 아니면 더 쉬운 방법입니까?

감사합니다.

추신 :이 필터는 22 개의 고유 한 시스템에서 발생하므로 각 시스템마다 루프를 실행할 계획입니다. 그것이 가장 빠르거나 적절한 방법이 아니라면 알려주십시오.

  • 가 다른 시트

    대답은 여기의 훌륭한 예제가에 필터링 된 데이터를 복사 할 데이터

    1. 필터 :

    답변

    10

    두 부분으로 나누어야합니다. 필터링 후 복사/붙여 넣기. 아래를 참조

    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를 사용합니다.

    +0

    이 코드는 작동합니다! 내가 지금 확신 할 수없는 것은 왜 그것이 "F4"에서 셀을 가져 와서 다른 기계이기 때문에 복사하는지입니다. 범위를 변경하면 "F3"도 복사됩니다. b) 같은 행에있는 데이터를 가져 오는 방법 (오른쪽에 두 개의 셀이 있기 때문에 각 컴퓨터가 가동되어 컴퓨터 이름 대신 복사하는 시간을 가지십시오.) 도움을 주셔서 감사합니다 !! – Grant

    +0

    귀하의 범위에서 F4를 사용합니다. 더 많은 데이터를 얻으려면 Range의 CurrentRegion을 사용하십시오. 댓글 섹션에서 해결할 수 없으므로보다 자세하게 새 질문을 만들어야합니다. 데이터가있는 행과 복사 할 데이터를 포함하십시오. – InContext

    +0

    좋습니다, 감사합니다 !! – Grant