2017-12-21 8 views
0

2016하지만, 엑셀 2016과 내가 얻을 : -엑셀 VBA에서 Range.Autofilter와 런타임 오류 (1004)는 내 코드</p> <pre><code>With ActiveSheet .AutoFilterMode = False .Range("23:23").AutoFilter End With </code></pre> <p><strong>이 엑셀 2010</strong>에서 잘 작동

실행 - 시간 오류 '1004'범위 클래스의 자동 필터 방법은 내가 인간 수

또한 실패 ❖ 리본 메뉴 (데이터> 필터)에서 필터 아이콘을 클릭하십시오. 그러나 VBA 코드로는이 작업을 수행 할 수 없습니다.

많은 의견을 환영합니다.

답변

1

빈 행으로 필터링하려고 할 때 AutoFilter1004이됩니다. 행 23에 뭔가를 넣어 시도하고 다음과 같이 다시 필터링 :

Public Sub TestMe()  
    With ActiveSheet 
     .AutoFilterMode = False 
     .Range("23:23").Cells(1) = 1 
     .Range("23:23").Cells(2) = 2 
     .Range("23:23").AutoFilter 
    End With 

End Sub 

를 작동하면, 당신은 단순히 행 (23)의 값이없는, 따라서는 자동 필터를 적용 할 수 없습니다.


일반적으로 Excel의 AutoFilter에는 이상한 동작이 있습니다.

Public Sub TestMe() 

    With ActiveSheet 
     .AutoFilterMode = False 
     '.Range("23:23").Cells(1) = 1 
     '.Range("23:23").Cells(2) = 2 
     .Range("23:23").AutoFilter 
    End With  
End Sub 

그것은 당신에게 1004 오류를 줄 것이다 : 새 Excel 파일을 열고 경우, 예를 들어, 다음 코드를 실행합니다. 이 순간의 기세는 FirstTime이라고 부르 자.

그런 다음 두 범위의 주석을 제거한 후 실행하면 AutoFilter이 표시됩니다.

이제 이상한 부분 - 시트에서 모든 셀을 삭제하려면 두 개의 범위를 다시 언급 그것은 정말 FirstTime에서, 그것이 방법처럼 보인다. 그러나 코드를 실행하면 문제없이 자동 23 번째 행에 자동 필터가 적용됩니다.

+0

감사합니다. Excel 2010에서이 코드가 제대로 작동하므로 값을 가지고 있습니다. – RShome

+0

@RShome - 시도해 보겠습니다. 'AutoFilter'는 좀 더 어렵고 이상한 행동을합니다. – Vityata

+0

그래, 난 여전히 같은 오류가 발생했습니다 :-( – RShome