2017-12-04 17 views
0

아래 코드는 작동 중이지만 오류가 발생하는 중입니다.Excel 매크로 자동 필터 및 행 삭제

코딩은 다른 워크 시트를 선택한 다음 열을 자동 필터링하고 행을 삭제합니다. 문제가

라인, .AutoFilter 1 "아니요 아니요"

은 런타임 오류 '1004': 범위 제공자 라이선스 계약의 자동 필터 방식에 실패했습니다.

도움을 얻을 수 있습니까?

Private Sub Project() 
Worksheets("YesYes").Select 
With ActiveSheet 
.AutoFilterMode = False 
With Range("y1", Range("y" & Rows.Count).End(xlUp)) 
    .AutoFilter 1, "*NoNo*" 
    On Error Resume Next 
    .Offset(1).SpecialCells(12).EntireRow.Delete 
End With 
.AutoFilterMode = False 
End With 
End Sub 
+0

y 열에 "NoNo"가 포함 된 행을 삭제하려고합니까? – Ibo

+0

나를 위해 작동합니다 ... 열 y에 데이터가 있는지 확인 하시겠습니까? – xthestreams

+0

예, 열 "NoNo"가있는 행을 삭제하려고합니다. 위의 매크로는 버튼이 표와 동일한 시트에 있지만 다른 시트에 버튼이 있고 오류가 발생하는 경우 작동합니다. 불행히도 다른 시트에 단추가 필요합니다. –

답변

0

선택이 반드시 워크 시트를 "활성화"하지는 않습니다. 대신에 :

Worksheets("YesYes").Select 
With ActiveSheet 

이 작업을 수행 : Select 또는 Activate를 사용하여 시간의

Worksheets("YesYes").Activate 
With ActiveSheet 
0

99 %가 필요하지 않습니다.

With Worksheets("YesYes") 

을 사용 아래에 중첩 :

대신 귀하의 경우에 사용, 완전한 개체를 사용

With .Range("y1", .Range("y" & .Rows.Count).End(xlUp)) 

을 그리고 코드의 나머지 부분을 추가합니다.