Excel 범위를 사용자 정의 함수에 전달하는 가장 좋은 방법은 무엇입니까?

Excel 범위를 사용자 정의 함수에 전달하는 가장 좋은 방법은 무엇입니까?

Excel 스프레드시트에서 VBA로 작성된 사용자 정의 함수(UDF)의 매개변수 ExcelRange로 큰 범위를 전달합니다.

  1. ExcelRange As Range 매개 변수를 선언한 다음 이를 Variant로 변환할 수 있습니다.
    Dim VariantArray As Variant
    VariantArray = ExcelRange.Value2

또는

  1. UDF의 ExcelRange 매개변수를 Variant로 직접 선언할 수 있습니다.

두 경우 모두 루프 내에서 VariantArray 또는 ExcelRange의 각 요소를 Double 변수로 변환합니다.

1과 2 중 어느 것이 더 시간 효율적입니까?

답변1

두 경우 모두 루프 내에서 VariantArray의 각 요소를 Double 변수로 변환합니다.
1.과 2. 중 어느 것이 더 효율적인가요?

어쨌든 범위를 Variant로 변환해도 성능에는 큰 차이가 없습니다.
전환한 다음 통과하거나 통과한 다음 전환하든 동일한 노력이 필요합니다.

차이점은 UDF 사용에 있습니다.

  • 범위에 대해 어떤 작업을 수행해야 하는 경우(예: 주소 가져오기) 분명히 Range 인수를 사용해야 합니다.
  • =SUM({1,2,3})사용자가 Range가 아닌 배열을 전달할 것으로 예상되는 경우 인수를 Variant(예: Excel에서 유효한 수식) 로 선언하는 것이 좋습니다 .

관련 정보