Beth는 자신이 연 통합 문서에 종속 된 다른 통합 문서가 있는지 확인할 수있는 방법이 있는지 궁금합니다. 그녀는 열린 통합 문서에 대한 선례 링크를 찾는 방법을 알고 있지만 종속 통합 문서는 찾지 않습니다.

Beth는 새 직장에 있으며 자신이 영향을 미칠 수있는 다른 파일이 무엇인지 모르고 통합 문서를 편집하는 위험을 감수하고 싶지 않습니다.

통합 문서 A와 통합 문서 B가 있고 통합 문서 B에 통합 문서 A에 대한 링크가 포함되어있는 경우 통합 문서 B는 통합 문서 A에 종속되고 통합 문서 A는 통합 문서 B의 선례입니다.

통합 문서 B에서는 통합 문서에 사용 된 링크를 쉽게 찾을 수 있습니다. 통합 문서 A가 통합 문서 B의 선례라는 것을 알 수 있습니다. Beth가 말했듯이 그녀는이 정보를 찾는 방법을 알고 있습니다.

통합 문서 A에서는 통합 문서 B에 통합 문서 A에 대한 링크가 있으므로 통합 문서 A에 종속되어 있는지 확인할 수있는 방법이 없습니다. 따라서 통합 문서 B에 실수로 영향을 미칠 수있는 통합 문서 A를 변경할 수 있습니다. 예를 들어, 명명 된 범위를 변경하거나 워크 시트의 이름을 바꾸거나 더 이상 필요하지 않은 정보를 삭제할 수 있습니다. 다음에 통합 문서 B를 열면 통합 문서 A에서 의존했던 정보를 더 이상 사용할 수 없기 때문에 무례하게 놀라게 될 것입니다.

통합 문서 A의 일부 변경 사항은 통합 문서 B에 영향을 미치지 않을 수 있습니다. 예를 들어 워크 시트를 추가하고 명명 된 범위를 추가하고 열이나 행을 삽입 할 수 있어야합니다. 이러한 모든 경우에 Excel은 통합 문서 B에 영향을주지 않고 변경 사항에 자연스럽게 적응할 수 있습니다. 문제는 나중에 통합 문서 B를 열 때까지 부정적인 영향이 있었는지 알 수 없다는 것입니다. 그리고 통합 문서 B를 여는 방법도 모를 것입니다. 두 통합 문서 사이에 관계가 있다는 것을 미리 알고있었습니다.

문제를 해결하는 한 가지 방법은 생각할 수있는 모든 통합 문서를 동시에 연 다음 Excel의 감사 도구를 사용하여 종속성을 확인하는 것입니다. 시스템에 매우 제한된 수의 통합 문서가있는 경우 잘 작동 할 수 있습니다. 통합 문서가 많거나 통합 문서가 네트워크에있는 경우에는 그렇게 잘 작동하지 않습니다.

통합 문서가 로컬 시스템의 설정된 위치 (모두 단일 폴더)에있는 경우 매크로를 사용하여 종속성을 확인할 수 있습니다. 다음 단계에서는 지정된 디렉터리의 모든 Excel 통합 문서를 살펴보고 수식으로 현재 열려있는 통합 문서에 연결된 통합 문서를 식별합니다.

Sub DiscoverDependentFiles()

Dim i As Integer     Dim iFile As String     Dim fLink As Variant     Dim sLink As String     Dim myFldr As String     Dim curFile As String

'Change the string here to look     'for a different link / file name     sLink = "[FileA.xls]"

curFile = ThisWorkbook.Name     'Change the string here to look     'in a different folder     myFldr = "C:\Users\User\mySub\"



iFile = Dir(myFldr & "*.xls", vbNormal)

i = 1     'Loop through all of the files in the folder     Do While iFile <> ""

If iFile <> curFile Then             Workbooks.Open Filename:=myFldr & iFile             Set fLink = Cells.Find(What:=sLink, _               After:=ActiveCell, LookIn:=xlFormulas, _               LookAt:=xlPart, SearchOrder:=xlByRows, _               SearchDirection:=xlNext, MatchCase:= _               False, SearchFormat:=False)

If UCase(TypeName(fLink)) <> UCase("Nothing") Then                 Windows(curFile).Activate                 'Record names of dependent files                 'in your open workbook                 Worksheets(1).Range("D" & (i)).Value = _                   ActiveWorkbook.Name                 i = i + 1             End If             Workbooks(iFile).Close False         End If         iFile = Dir     Loop End Sub

이 접근 방식은 간단한 상황에서 잘 작동합니다. 그러나 경우에 따라 Excel 이름, 텍스트 상자, 차트 및 기타 개체의 여러 위치에 링크를 숨길 수 있기 때문에 이러한 매크로는 부분적인 솔루션 만 제공 할 수 있습니다. 무언가를 확인하지 않은 채로 둘 수있는 기회는 항상 있습니다. 결론은 변경 사항이 변경중인 통합 문서에 종속 된 다른 통합 문서에 영향을 미칠 수 있으므로 변경하기 전에 통합 문서 파일을 백업 할 수 있다는 것입니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (7797)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Discovering_Dependent_Workbooks [Discovering Dependent Workbooks].