programing

VBA 내에서 Excel에서 시트의 데이터를 새로 고치는 중

skycolor 2023. 6. 1. 22:37
반응형

VBA 내에서 Excel에서 시트의 데이터를 새로 고치는 중

셀 값을 변경하지 않고도 Excel의 스프레드시트 데이터를 VBA 내에서 재계산할 수 있는 방법은 무엇입니까?

다음 행이 유용합니다.

ActiveSheet.EnableCalculation = False  
ActiveSheet.EnableCalculation = True  

편집: The.Calculate()메서드가 모든 함수에 대해 작동하지는 않습니다.저는 애드인 배열 기능이 있는 시트에서 테스트했습니다.제가 사용하고 있는 생산 시트는 너무 복잡해서 테스트하고 싶지 않습니다..CalculateFull()방법이지만, 효과가 있을 수 있습니다.

이 정도면 효과가 있을 겁니다

'recalculate all open workbooks
Application.Calculate

'recalculate a specific worksheet
Worksheets(1).Calculate

' recalculate a specific range
Worksheets(1).Columns(1).Calculate

때때로 엑셀은 딸꾹질을 할 것이고 방정식을 다시 적용하기 위해 킥스타트가 필요합니다.이 문제는 사용자 정의 수식을 사용할 때 발생할 수 있습니다.

다음 스크립트가 있는지 확인합니다.

ActiveSheet.EnableCalculation = True

선택 방정식을 다시 적용합니다.

Cells(RowA,ColB).Formula = Cells(RowA,ColB).Formula

그런 다음 필요에 따라 루프할 수 있습니다.

당신은 또한 시도할 수 있습니다.

Application.CalculateFull

또는

Application.CalculateFullRebuild

현재 워크시트만 재구성하는 것이 아니라 열려 있는 모든 워크북을 다시 작성하는 것이 좋습니다.(CalculateFullRebuild종속성도 재구축합니다.)

VBA에서 배경 이미지(초안 워터마크)를 끄는 데 문제가 있었습니다.변경 사항이 나타나지 않았습니다(이 변경 사항은 다음과 함께 수행됨).Sheets(1).PageSetup.CenterHeader = ""방법) - 그래서 재충전할 방법이 필요했습니다.ActiveSheet.EnableCalculation접근법은 부분적으로는 효과가 있었지만 사용하지 않은 세포는 다루지 않았습니다.

결국 저는 더 이상 설정되지 않았을 때 이미지를 사라지게 하는 하나의 라이너로 제가 필요로 하는 것을 찾았습니다:-

Application.ScreenUpdating = True

데이터 연결 업데이트 후 일부 UDF가 실행되지 않았습니다.서브루틴을 사용하여 단일 열을 재계산하려고 했습니다.

Sheets("mysheet").Columns("D").Calculate

그러나 위의 진술은 효과가 없었습니다.위의 솔루션 중 하나도 도움이 되지 않았습니다. 단, 공식을 교체하라는 캠벡스의 제안이 효과가 있었고 업데이트 중에 수동으로 다시 호출하면 속도가 빠릅니다.아래 코드는 OP "kluge" 코멘트에 정확하게 책임이 있지 않더라도 사용자 지정 셀의 재계산을 강제할 수 있는 빠르고 안정적인 솔루션을 제공했습니다.

Application.Calculation = xlManual
DoEvents
For Each mycell In Sheets("mysheet").Range("D9:D750").Cells
    mycell.Formula = mycell.Formula
Next
DoEvents
Application.Calculation = xlAutomatic

언급URL : https://stackoverflow.com/questions/154434/getting-excel-to-refresh-data-on-sheet-from-within-vba

반응형