Excel 스프레드시트에서 VBA로 작성된 사용자 정의 함수(UDF)의 매개변수 ExcelRange로 큰 범위를 전달합니다.
- ExcelRange As Range 매개 변수를 선언한 다음 이를 Variant로 변환할 수 있습니다.
Dim VariantArray As Variant
VariantArray = ExcelRange.Value2
또는
- UDF의 ExcelRange 매개변수를 Variant로 직접 선언할 수 있습니다.
두 경우 모두 루프 내에서 VariantArray 또는 ExcelRange의 각 요소를 Double 변수로 변환합니다.
1과 2 중 어느 것이 더 시간 효율적입니까?
답변1
두 경우 모두 루프 내에서 VariantArray의 각 요소를 Double 변수로 변환합니다.
1.과 2. 중 어느 것이 더 효율적인가요?
어쨌든 범위를 Variant로 변환해도 성능에는 큰 차이가 없습니다.
전환한 다음 통과하거나 통과한 다음 전환하든 동일한 노력이 필요합니다.
차이점은 UDF 사용에 있습니다.
- 범위에 대해 어떤 작업을 수행해야 하는 경우(예: 주소 가져오기) 분명히 Range 인수를 사용해야 합니다.
=SUM({1,2,3})
사용자가 Range가 아닌 배열을 전달할 것으로 예상되는 경우 인수를 Variant(예: Excel에서 유효한 수식) 로 선언하는 것이 좋습니다 .