Обнаружение зависимых рабочих книг (Microsoft Excel)
Бет задается вопросом, есть ли способ определить, существуют ли другие книги, зависящие от книги, которую она открыла. Она знает, как находить прецедентные ссылки на свою открытую рабочую тетрадь, но не зависимые.
Бет перешла на новую работу, и она не хочет рисковать, редактируя книгу, не зная, на какие еще файлы она может влиять.
Если у вас есть книга A и книга B, а книга B включает ссылку на книгу A, тогда книга B зависит от книги A, а рабочая книга A является прецедентом для книги B.
В книге B вы можете легко найти ссылки, используемые в книге; вы бы знали, что рабочая тетрадь A является прецедентом рабочей тетради B. Как сказала Бет, она знает, как найти эту информацию.
В книге A нет способа определить, что книга B имеет ссылку на книгу A и, следовательно, зависит от книги A. Таким образом, в книгу A можно внести изменения, которые могут непреднамеренно повлиять на книгу B. Например, вы может изменить именованный диапазон, переименовать лист или удалить информацию, которая, по вашему мнению, больше не нужна. Когда вы в следующий раз откроете книгу B, вас ждет грубый сюрприз, потому что информация, от которой она зависела в книге A, больше не была доступна.
Некоторые изменения, внесенные в книгу A, могут не повлиять на книгу B. Например, вы должны иметь возможность добавлять рабочие листы, добавлять именованные диапазоны и, возможно, вставлять столбцы или строки. Во всех этих случаях Excel может естественным образом адаптироваться к изменениям, не затрагивая книгу 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 [Обнаружение зависимых рабочих книг]
.