내가 이름 범위의 경우, 이후 이전의 대답을 떠나, 그것은 맞습니다도있다 다른 사람이 개선하여 명명 된 범위의 문제를 찾는 사용자는 유용하다고 생각할 수 있습니다.
한편
, 당신이 아마 의미하는 것은 는
Set range_1 = Range("A1")
Set range_2 = Range("A2")
'...
Set range_25 = Range("A25)
(당신이 당신의 임무를 만들 었는지, 내가 알 수 없다 물론 이것은 단지 예입니다)로, 변수의 범위를 할당한다는 것입니다
불행히도 변수 이름을 통해 루프를 반복 할 수 없습니다.
이
Dim ranges As Collection: Set ranges = New Collection
ranges.Add range_1
ranges.Add range_2
'...
ranges.Add range_25
일반적으로 더 컬렉션마다의 범위를 추가 :하지만 당신이 할 수있는 것은 당신이 그들을 통해 반복하는 인덱스를 사용하여 최근에 액세스 할 수 있도록 범위의 컬렉션을 만들 것입니다 당신은 그것을 정의합니다. 나중에이 범위가 변경 되더라도 Add 메서드가 개체의 얕은 복사을 생성하므로 목록의 범위도 변경됩니다 (다시 말해서 여전히 원래 개체를 가리키고 있음) .
이제 범위의 컬렉션이 범위 개체를 저장하고 있으며 인덱스로 액세스 할 수 있습니다. 예를 들어, 특정한 경우에 : 좋은 방법으로
For j = 2 To 25
If Not Intersect(ranges(1), ranges(j)) Is Nothing Then
때마다 당신이 개체의 "인간적으로 색인"시리즈를 반복하기를 원할 것입니다 기억/변수는 귀하의 경우, 당신은 수시로 할 수 있습니다 것입니다 변수의 이름을 코드 자체에서 작성/변경할 수 없기 때문에이를 콜렉션으로 변환 할 수 있습니다.
범위는 어디입니까 ** ** 흐림 ?? ** –
무엇이'range_1' 또는'range_i'입니까? 명명 된 범위? 아마도'range'는 객체라는 것을 알 것입니다. 그래서 정의하지 않고서는, 당신은'intersect'를 사용하려하고 있습니다, 그래서 오류가옵니다. – ZAT
예, 모든 범위의 이름은 다른 곳에서 올바르게 지정됩니다. –