10 개 열 (세트당 총 11 개 열에 대한 공간에 +1 열)에서 한 번의 반복을 완료하는 Excel 계산이 있습니다. 내 의도는 VBA를 사용하여이 범위의 11 개 열을 여러 번 (이상적으로는 350 개 이상) 복사하는 것입니다. 범위를 복사 / 붙여 넣기 할 때마다 계산의 반복은 "캐스케이드"효과에 대해 이전 세트를 참조합니다.
이 작업을 수행하지만 처리 속도가 매우 느리고 반복 계획의 더 큰 끝에서 계산이 의도 한대로 작동하는지 여부를 알 수없는 몇 가지 VBA 코드를 모았습니다. 진행 상황을 추적하기 위해 상태 표시 줄을 추가했는데 100 회 정도 반복하면 작업이 중단되는 것을 확인했습니다. 나는 그것이 어려움을 겪는 지점 인 것처럼 보이기 때문에 현재 100 회 반복으로 설정되어 있습니다.
나는 이것을 요청하기 전에 여기에서 도움을 받았으며 Application.ScreenUpdating = False 트릭을 발견 했지만 문제가 해결되지 않는 것 같습니다.
현재 가지고있는 것을 어떻게 최적화합니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?
Sub CascadeCopy2()
Dim i As Integer, x As Integer
Dim count As Integer
Application.ScreenUpdating = False
count = 100
For i = 1 To count
With Sheets("Calc").Range("V3:AF250").Offset(0, x)
.Copy
.Offset(0, 11).PasteSpecial
Application.CutCopyMode = False
x = x + 11
End With
Application.StatusBar = "Progress: " & i & " of " & count & ":" & Format(i / count, "0%")
Next i
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub
워크 시트에서 범위를 반복적으로 복사하려면 for 루프를 수행해야합니다. 를 사용할 수 equals method
있지만 수식을 복사하려면 두 가지 작업을 수행해야합니다 (아래 참조).
Dim x As Long
x = 1
For i = 1 To 299 'the number of times you want to copy, change as needed
With Sheets("Calc").Cells(1, x + 32).Resize(250, 32)
.Value = Sheets("Calc").Cells(1, x).Resize(250, 32).Value
.Formula = Sheets("Calc").Cells(1, x).Resize(250, 32).Formula
End With
x = x + 32
Next i
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다