2012-05-25 1 views
0

클라이언트 요청으로 인해 Visual Studio 2008에서 VSTO를 사용하여 단일 셀에 명명 된 범위를 만든 다음 해당 셀에 저장합니다. 통합 문서를 만들고 응용 프로그램이 다시 시작되면 나중에 읽을 수 있습니다.Excel에서 삭제 된 후에도 Excel/VSTO의 명명 된 범위가 반환됩니다.

excel에서 하나 이상의 명명 된 범위가 포함 된 행을 삭제하고 통합 문서를 저장 한 후 Excel을 다시 시작하면 해당 행의 명명 된 범위가 여전히 반환되며 이로 인해 내 문제가 발생합니다.

셀 이름을 지정하기 위해 간단한 Application.Selection.Name = "무엇이든지"를 수행합니다. 그리고 starup에 그들을 다시 얻기 위해서 나는 Application.ActiveWorkbook.Names를 사용하고 있습니다.

누군가가 이것이 올바른 동작인지 알려 주실 수 있습니까? 그렇다면 C# Excel interop 코드를 통해 범위를 필터링 할 수있는 방법이 있다면 현재 보이는 것만 알려주십시오. 사전에

감사합니다.

+0

"명명 된 범위"실제로 명명 된 범위 대신 명명 된 수식입니다 : 명명 된 수식을 참조하는 셀을 삭제할 때 명명 된 수식 부분을 참조하는 부분을 삭제할 때 삭제 된 셀은 #Ref로 대체됩니다. –

+0

"가시 범위 만 필터링"이란 무엇을 의미합니까? 배열을 만드시겠습니까? 시트에 Excel 필터를 만드시겠습니까? 보이는 셀만 참조하는 다중 영역 Range 객체를 만드시겠습니까? 또는 다른 것? –

답변

2

예, 이것은 올바른 동작이며 VSTO와 관련이 없습니다.

이름이있는 범위를 삭제하면 이름이 삭제되지 않습니다. 대신, 잘못된 참조로 대체하십시오 RefersToRange 속성을 읽을 때

Sheet1!#REF! 

같은 이름을 감지하는 가장 쉬운 방법은 예외를 캡처.

+0

도움에 감사드립니다! – Pete