-4
미리 도움을 주셔서 감사합니다. 셀 값 "True"에 대해 "ClientTradeDetails"라는 시트의 열 O를 검색하는 매크로를 만들었고, 셀 값이 "True"이면 전체 행을 가져 와서 "TrueValues"시트에 붙여 넣습니다. .코드 속도 향상 (한 시트에서 다른 시트로 복사/붙여 넣기)
작동하지만 극히 느립니다. 보시다시피 필자는 마스터 시트에 65536 행의 데이터를 가지고 있습니다. 복사/붙여 넣기가 문제라고 생각했지만 Copy 메서드를 피하기 위해이를 변경하는 방법을 모르겠습니다. 어떤 도움이 필요합니까?
Sub MoveTrue()
Sheets("ClientTradeDetails").Select
Dim tfCol As Range, Cell As Object
Set tfCol = Range("O2:O439050") 'Substitute with the range '
For Each Cell In tfCol
If Cell.Value = "True" Then
Cell.EntireRow.Cut
Sheets("TrueValues").Select
ActiveSheet.Range("A65536").End(xlUp).Select
Selection.Offset(1, 0).Select
ActiveSheet.Paste
End If
Next
End Sub
문제는 하나의 Excel 시트에 많은 양의 데이터가 있고 데이터 관리 옵션이 좋지 않은 경우 매크로를 보충해야한다는 것입니다. – DejaVuSansMono
[AutoFilter 메서드] (https://msdn.microsoft.com/en-us/library/office/aa221844.aspx)를 사용하여 한 열에서 true를 필터링하고 값을 대량 전송하십시오. 필요한 경우 다른 열에 대해서도 반복하십시오. 현재 전체 워크 시트를 (모든 의도와 목적으로) 검색하고 있습니다. 분명히 진실을 포함 할 수있는 몇 개의 열만 있습니다. – Jeeped
@Jeeped는'Cell.Entire.Cut'을'Intersect (UsedRange, Cell.EntireRow) .Cut'와 같이 대체한다고 생각합니다. 이렇게하면 필요한 열만 복사됩니다. 전체 행이 아닌 (모든 열에서 채워지지 않을 수도 있습니다. [선택 피하기] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)를 참조하십시오.). 그 속도가 크게 증가 할 것입니다. 또한 값의 양에 따라 자동 입력기가 너무 느려질 수 있지만 모든 행을 반복하는 것보다 확실히 빠릅니다. –