현재 각각 범위를 포함하는 두 개의 배열이 있습니다. 이 두 배열의 교차점을 얻는 방법은 무엇입니까? 즉, 두 개의 원래 배열 모두에 포함 된 범위 만 포함하는 범위 배열을 얻고 싶습니다. 나는 .Intersect를 시도했지만 배운 것처럼 배열에서 작동하지 않습니다.
array1 : (Range ( "A1"), Range ( "B1"), Range ( "C1")) array2 : (Range ( "A1"), Range ( "A2"), Range ( "A3"))
결과 : (범위 ( "A1"))
이 코드를 사용할 수 있습니다. 아이디어는 반복을 사용하여 단일 범위의 배열을 병합하는 것입니다 Union
. 그런 다음 기본 제공 Intersect
.
Function IntersectArray(array1() As Range, array2() As Range) As Range
Dim unionRangeArray1 As Range, unionRangeArray2 As Range
Dim i As Integer
Dim lbound1 As Integer: lbound1 = LBound(array1)
Dim lbound2 As Integer: lbound2 = LBound(array2)
Set unionRangeArray1 = array1(lbound1)
Set unionRangeArray2 = array2(lbound2)
For i = lbound1 + 1 To UBound(array1)
Set unionRangeArray1 = Application.Union(unionRangeArray1, array1(i))
Next
For i = lbound2 + 1 To UBound(array2)
Set unionRangeArray2 = Application.Union(unionRangeArray2, array2(i))
Next
Set IntersectArray = Application.Intersect(unionRangeArray1, unionRangeArray2)
End Function
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다