데이터 분석, 차트 작성, 전달을 위한 도구를 갖춘 Microsoft 스프레드시트 소프트웨어 제품군입니다.
이 응답은 자동으로 번역되었습니다. 따라서 문법 오류 또는 이상한 표현이 있을 수 있습니다.
안녕하세요 윤대영님
Microsoft 커뮤니티에 오신 것을 환영합니다.
해당 문제는 VBA에서 AutoFill 메서드의 동작이 예상과 다르게 작동하는 경우에 발생할 수 있습니다. 특히, CPU 사용률이 높을 때 Excel의 반응 속도가 느려지면서 자동 채우기 기능이 예상치 못한 방식으로 실행될 수 있습니다. 이러한 상황에서는 다음과 같은 해결 방안을 고려할 수 있습니다:
**1->**Application.Calculation 상태 변경
Excel의 계산 모드를 변경하여, 스크립트 실행 도중 불필요한 계산을 최소화하고 성능을 개선할 수 있습니다. 작업 시작 전에 계산 모드를 xlCalculationManual로 설정하고, 작업 완료 후에는 원래의 계산 모드(xlCalculationAutomatic)로 복구하는 방법입니다.
| Dim originalCalcMode As Long <br><br><br><br> originalCalcMode = Application.Calculation <br><br><br><br> Application.Calculation = xlCalculationManual <br><br><br><br> ' 코드 실행 <br><br><br><br> Application.Calculation = originalCalcMode |
|---|
**2->**ScreenUpdating 상태 변경
Excel의 화면 갱신을 임시로 중지하여 성능을 개선할 수도 있습니다. 화면 갱신이 필요 없는 코드 실행 시간 동안 Application.ScreenUpdating를 False로 설정하고, 작업이 완료된 후에 다시 True로 설정합니다.
| Application.ScreenUpdating = False <br><br><br><br> ' 코드 실행 <br><br><br><br> Application.ScreenUpdating = True |
|---|
3-> 대안적 자동 채우기 로직 구현
AutoFill 메서드 대신, 반복문을 사용하여 수식이나 데이터를 직접 채워넣는 방법입니다. 이 방법은 더 많은 제어를 할 수 있으며, CPU 사용률이 높은 환경에서도 더 안정적으로 동작할 수 있습니다. 예를 들어, 첫 행의 수식을 나머지 행에 복사하는 로직을 구현할 수 있습니다.
| Dim i As Long <br><br><br><br> For i = startRow + 1 To lastRow <br><br><br><br> <br><br><br><br> Next i |
|---|
4 -> 계산 후 강제 적용
Application.Calculate를 사용하여 코드 실행 후 즉시 계산을 강제 실행할 수 있습니다. 이 방법은 코드 중간에 적용될 수 있으며, 특히 큰 데이터 세트에 대해 자동 채우기를 수행한 후 유용할 수 있습니다.
위의 해결 방안들을 시도해보시길 바랍니다. 성능 문제와 예기치 않은 동작은 상황에 따라 다를 수 있으므로, 여러 접근 방법을 시험해보고 가장 효과적인 방법을 선택하는 것이 중요합니다.
PC에 CPU 부하를 증가시키는 소프트웨어가 있는 경우 해당 소프트웨어도 닫는 것이 좋습니다. 그리고 추가 기능이 너무 많아서 문제가 발생하는 것은 아닌지 생각해 보세요. 추가 기능 문제를 해결하려면 Excel 안전 모드로 진입하여 하나씩 취소한 후 CPU가 올바른 리소스 사용으로 돌아가는 데 도움이 되는지 관찰해 보시기 바랍니다. .
- Office의 안전 모드를 사용하도록 설정하는 팁은 -<Windows PC 안전 모드에서 Office 앱 열기 - Microsoft 지원>
- PC 성능 향상에 대한 팁은 -<Windows에서 PC 성능을 개선하는 팁 - Microsoft 지원>
또한 이 특정 파일을 공유해 볼 수도 있으며, 이를 통해 확인할 특정 데이터가 있는 경우 더 많은 솔루션을 찾을 수 있습니다. 파일이 비공개인 경우 비공개 메시지를 통해 나와 공유할 수 있습니다. 브라우저 오른쪽 상단에서 확인하세요.
문안 인사,
아이슬린 |Microsoft 커뮤니티 지원 전문가
* 여러분의 인내와 협조에 깊은 감사를 드립니다.