source

Excel VBA 함수 결과 새로 고침

ittop 2023. 4. 12. 22:58
반응형

Excel VBA 함수 결과 새로 고침

스프레드시트의 변경된 데이터를 기반으로 사용자 정의 함수를 재평가하려면 어떻게 해야 합니까?

+F9를 시도했습니다.

기능하는 것은 함수 호출로 셀을 편집하고 Enter 키를 누르는 것뿐입니다.

를 사용해 주세요.Application.Volatile기능 상단으로 이동합니다.

Function doubleMe(d)
    Application.Volatile
    doubleMe = d * 2
End Function

그런 다음 워크북이 변경될 때마다(계산이 자동으로 설정된 경우) 재평가됩니다.

Excel 계산을 위한 F9 키보드 단축키에 대한 자세한 정보

  • F9 열려 있는 모든 워크북의 모든 워크시트 재계산
  • + 활성 워크시트를 다시 계산합니다Shift.
  • Ctrl++Alt 열려 있는 모든 워크북의 모든 워크시트를 재계산합니다(전체 재계산).
  • Shift +++Alt 의존관계 트리를 재구축하여 완전한 재계산을 수행합니다.

좋아, 이건 내가 직접 찾았어++AltF9를 사용하여 이 작업을 수행할 수 있습니다.

스프레드시트 데이터에 대한 모든 참조를 UDF 매개 변수 목록에 포함하면 Excel은 참조된 데이터가 변경될 때마다 함수를 다시 계산합니다.

Public Function doubleMe(d As Variant)
    doubleMe = d * 2
End Function

를 사용할 수도 있습니다.Application.Volatile단, 참조된 데이터가 변경되지 않았기 때문에 UDF가 필요하지 않은 경우에도 UDF가 항상 재계산할 필요가 없는 경우에도 마찬가지입니다.

Public Function doubleMe()
    Application.Volatile
    doubleMe = Worksheets("Fred").Range("A1") * 2
End Function

자동으로 전환하려면:

Application.Calculation = xlCalculationAutomatic    

수동으로 전환하려면:

Application.Calculation = xlCalculationManual    

Application.Volatile내 함수로는 공식을 재계산할 수 없어다음 기능을 사용합니다.Application.CalculateFull

이렇게 하면 계산이 보다 잘 갱신됩니다.Range(A:B).Calculate:

Public Sub UpdateMyFunctions()
    Dim myRange As Range
    Dim rng As Range

    ' Assume the functions are in this range A1:B10.
    Set myRange = ActiveSheet.Range("A1:B10")

    For Each rng In myRange
        rng.Formula = rng.Formula
    Next
End Sub

특정 셀이 변경되었을 때만 계산을 업데이트하는 것이 가장 좋다는 것을 알았습니다.다음은 "워크시트" "변경" 이벤트에 배치하는 VBA 코드 예입니다.

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("F3")) Is Nothing Then
    Application.CalculateFull
  End If
End Sub
Public Sub UpdateMyFunctions()
    Dim myRange As Range
    Dim rng As Range

    'Considering The Functions are in Range A1:B10
    Set myRange = ActiveSheet.Range("A1:B10")

    For Each rng In myRange
        rng.Formula = rng.Formula
    Next
End Sub

언급URL : https://stackoverflow.com/questions/11045/refresh-excel-vba-function-results

반응형