2017-04-14 3 views
1

Excel에서 광범위한 행을 필터링하고 Excel에서 실행중인 필터없이 해당 값을 Excel에서 시각적 동작없이 VB 코드로 복사하려고합니다.필터링 숨겨진 모드에서 행을 Excel (VB 코드)

' 
     xlSheet.Range("A1:Z100000").AutoFilter(1, "Criteria", , , False) 

     xlSheet.Range("C1:F100000").Copy() 

     xlSheet2.Range("A1").PasteSpecial(Paste:=XlPasteType.xlPasteValues, Operation:=XlPasteSpecialOperation.xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False) 

     Application.CutCopyMode = CType(False, XlCutCopyMode) 

     xlSheet.Range("A1:Z100000").AutoFilter(False) 
' 

어떤 제안 : 이 절차는, 내가 더 민첩 대안을 매우 느린 싶어한다? 감사 !

나는이 문제에 대한이 강령을 제안하고자
+1

제안 사항 : 1) ADO (ActiveX Data Object) 사용 : [ADO를 사용하여 Excel 스프레드 시트 쿼리] (https://technet.microsoft.com/en-us/library/ee692882)를 참조하십시오. .aspx). 2) 엑셀의 고급 필터를 사용하십시오. 3) COUNTIF()를 사용하여 행 수를 결정하고, 결과 배열을 redim하고, 결과 배열을 행별로 채우고 결과 배열을 붙여 넣습니다. –

답변

-1

,,

하위 Exception_Review()

Application.ScreenUpdating 사용 문자열로 문자열 희미한을 NewFileName으로 = 거짓 희미한 FilterCriteria 희미한 CurrentsheetName '가져 오기 현재 시트의 이름 CurrentSheetName = ActiveSheet.Name 범위 ("A2 : K25"). Selection.AutoFilter Selection.AutoFilter 필드 : = 13, Criteria1 : = "No"Selection.SpecialCells (xlCellTypeVisible) .Select Selection.Copy Worksheets.Add ActiveSheet. 이름 = "ExceptionReview"범위 ("A1"). ActiveSheet.Paste을 선택하십시오. .Application.CutCopyMode = 거짓 Cells.Select Selection.Columns.AutoFit 범위 ("A1")를 선택합니다 (CurrentsheetName) .Activate Selection.AutoFilter 필드 : = 1 Selection.AutoFilter
범위 ("A1") 응용 프로그램을 선택. .ScreenUpdating = True End Sub

+0

당신의 대답은 약간의 포맷이 필요합니다. 그렇지 않으면 거의 읽을 수 없습니다. –

+0

불편을 끼쳐 드려 죄송합니다. 실제로 핸드폰을 사용하여 귀하의 질문에 대한 답변을 드렸습니다. 아마도 부적절한 양식을 작성한 이유 일 수 있습니다. –