스프레드 시트에서 관심있는 각 셀에 입력되는 데이터를 표준화하고 유효성을 검사 한 데이터 입력을 제공하는 스프레드 시트가 있습니다. 데이터 확인/표준화 작업은 Worksheet_Change
이벤트를 사용하여 수행되었습니다. Excel에서 내장 된 데이터 유효성 검사 대신 VBA를 사용하기로 선택한 이유는 값을 입력 할 때만 작동하기 때문에 다른 스프레드 시트에서 복사 및 붙여 넣기가 데이터 유효성 검사를 덮어 씁니다.32 비트 Excel 2010에 대한 대규모 Worksheet_Change 절차의 해결 방법은 무엇입니까?
유효성을 검사해야하는 데이터 필드 (셀)의 수가 주어지면 Worksheet_Change
하위가 매우 커졌습니다. 64 비트 Excel에서는 문제가 없었지만 Procedure too large
오류가있는 32 비트 Excel 초크입니다. 유일한 방법은 프로 시저를 세분화하는 것이지만 프로 시저의 특성 (변경 이벤트)을 고려할 때 불가능합니다. 어떤 도움이라도 좋을 것입니다.
편집 : 내가 뭔가의 일이 할 수처럼 검증을위한 코드의 일부 모양을 나는 알고없이 Worksheet_Change
서브
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Set cell = Range("Range1")
If Not Application.Intersect(cell, Range(Target.Address)) Is Nothing Then
'Run Validation for Range1
End If
Set cell = Range("Range2")
If Not Application.Intersect(cell, Range(Target.Address)) Is Nothing Then
'Run Validation for Range2
End If
....
End Sub
감사의 구조,
_Change 이벤트의 모든 것이 있습니까? 또는 _change 이벤트에서 subs 호출합니까? – peege
End If와 End Sub 사이의 거리는 얼마나됩니까? ... – peege
코드 1000 개가 넘고 이름이 100 개의 범위에 가깝습니다. –