Добрый день Давненько не был у вас. Руками выделяю листы, копирую на новую книгу, либо копирую в существующую открытую книгу - все великолепно: ссылки перерегистрируются к новой книге, однако код записанный макрорекордером не работает. (Гуглил, связано с чем-то там). Нужен код, который бы позволил быстро отвязать из формул ссылок на старую книгу-донора, и перерегистрировать формулы к новой книге. Например в приложенном файле Ячейка А1 Лист1 легко "отвязывается" от файла "8784". Нижеприведенный код работает, но если в книге немного таких ячеек, массивов (содержащих формулы" то отлично работает, однако жизнь)) сурова и ячеек не счесть... Прошу помощи Вашей. Совета прошу. Думаю в сторону сокращения просматриваемых массивов путем ограничения зон просмотра для каждого листа (Названия листов стабильно и неизменно), чтобы не рыл ячейки в которых нет формул со ссылками на старую книгу. Возможно
Sub Копируем_Без_Связей() Set currentBook = ThisWorkbook
sheetsToCopy = Array("Лист1", "Лист2") Set newBook = Workbooks.Add For Each sheetName In sheetsToCopy
currentBook.Sheets(sheetName).Copy After:=newBook.Sheets(newBook.Sheets.Count) Next sheetName
filePath = currentBook.Path & "\Новый файл Эксель.xlsb"
newBook.SaveAs Filename:=filePath, FileFormat:=xlExcel12
originalFileName = currentBook.Name For Each ws In newBook.Worksheets
ws.Cells.Replace What:="[" & originalFileName & "]", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False Next ws
newBook.Save EndSub
Добрый день Давненько не был у вас. Руками выделяю листы, копирую на новую книгу, либо копирую в существующую открытую книгу - все великолепно: ссылки перерегистрируются к новой книге, однако код записанный макрорекордером не работает. (Гуглил, связано с чем-то там). Нужен код, который бы позволил быстро отвязать из формул ссылок на старую книгу-донора, и перерегистрировать формулы к новой книге. Например в приложенном файле Ячейка А1 Лист1 легко "отвязывается" от файла "8784". Нижеприведенный код работает, но если в книге немного таких ячеек, массивов (содержащих формулы" то отлично работает, однако жизнь)) сурова и ячеек не счесть... Прошу помощи Вашей. Совета прошу. Думаю в сторону сокращения просматриваемых массивов путем ограничения зон просмотра для каждого листа (Названия листов стабильно и неизменно), чтобы не рыл ячейки в которых нет формул со ссылками на старую книгу. Возможно
Sub Копируем_Без_Связей() Set currentBook = ThisWorkbook
sheetsToCopy = Array("Лист1", "Лист2") Set newBook = Workbooks.Add For Each sheetName In sheetsToCopy
currentBook.Sheets(sheetName).Copy After:=newBook.Sheets(newBook.Sheets.Count) Next sheetName
filePath = currentBook.Path & "\Новый файл Эксель.xlsb"
newBook.SaveAs Filename:=filePath, FileFormat:=xlExcel12
originalFileName = currentBook.Name For Each ws In newBook.Worksheets
ws.Cells.Replace What:="[" & originalFileName & "]", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False Next ws
newBook.Save EndSub