2016-07-22 4 views
1

이름이 지정된 범위가 여러 개 포함 된 "목록"이라는 시트가있는 스프레드 시트가 있습니다. 이 명명 된 범위는 동료 팀입니다. 명령 단추를 한 번 누르면 "H30"(동료 이름)에 입력 된 값과 H31 (관리자 이름)의 값이 사용되며 팀 목록에서 동료 이름을 선택하고 잘라내어 삽입합니다 관리자의 팀에 "H31"(관리자가 다른 팀으로 사람들을 편리하게 이동시킬 수 있음)으로 들어갑니다.VBA에서 Excel 2013 잘라내어 삽입하면 마지막 항목이 잘리는 경우 명명 된 범위의 크기가 조정되지 않습니다.

이 모든 것은 설정되어 있고 Excel이 자동으로 명명 된 범위의 크기를 조정하여 제대로 작동하므로 모든 함수 (예 : 콤보 상자 등)가 여전히 올바르게 작동합니다. 그러나 동료가 팀의 마지막 동료 인 경우 문제가 발생합니다. VBA에서 잘라 내기/삽입을 사용하면 잘라낸 명명 된 범위의 크기가 조정되지 않고 끝에 공백이 남습니다.

명명 된 범위의 다른 모든 곳에서 동료 이름을 잘라낸 경우 명명 된 범위의 크기가 계속 조정되므로 제대로 크기를 조정할 수 있습니까? 이 작업을 수행하는 간단한 방법이 있습니까? 하지 아래하다면 내가하고 싶은 방법입니다,하지만 어떻게 확실하지 않다 :

문 확인할 경우 범위를 "H30"의 항목을 이름

에 나타나는 찾으면 "H30"일치의 값

크기 조정 범위 항목을 절단 한 후 명명 된 범위의 마지막 항목은 (이 내가 작업 한)이 동료가에서 오는 범위를 확인

내 주요 문제입니다 (또한 작업이) 내가 사용하려고했습니다 각 명명 된 범위를 통과하려면 다음과 같은 루프 :

Dim nm As Name 

For Each nm In Worksheets("Lists").Names 
    If Not Intersect(Range("H30"), nm.RefersToRange) Is Nothing Then 
      'Do things 
    End If 
Next nm 

위의 예는 다른 곳에서도 얻을 수 있지만 범위를 찾지 못하는 것 같습니다. 오류도 생성되지 않습니다. 가치가있는 명명 된 범위를 찾기 위해 취할 수있는 다른 접근법이 있습니까?

답변

0

는 "H30"의 항목에서 나타나는 명명 된 범위 찾기 자동으로 formual 동적 범위를 조정 행/열을 절단 Worksheets("Lists").Range("H30").Name.Name

사용합니다. 따라서 바닥/꼭대기에서 무언가를 자르면 사라집니다. 복사 셀을 자르고 내용을 지우는 대신. 희망 범위 내에서 CountA을 사용하고 있습니다.

+0

나는 .Name을 두 번 사용하는 것을 인식하지 못했습니다. 감사합니다. 나는 또한 카운트를 잊었다. 고마워 이것이 내가 필요한 것을 끝내는 데 도움이되었다. –