Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скопировать листы в новую книгу, формулы разорвать от старой - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Скопировать листы в новую книгу, формулы разорвать от старой
Yar4i Дата: Пятница, 21.02.2025, 10:21 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 138
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Добрый день :D
Давненько не был у вас.
Руками выделяю листы, копирую на новую книгу, либо копирую в существующую открытую книгу - все великолепно: ссылки перерегистрируются к новой книге, однако код записанный макрорекордером не работает. (Гуглил, связано с чем-то там).
Нужен код, который бы позволил быстро отвязать из формул ссылок на старую книгу-донора, и перерегистрировать формулы к новой книге. Например в приложенном файле Ячейка А1 Лист1 легко "отвязывается" от файла "8784".
Нижеприведенный код работает, но если в книге немного таких ячеек, массивов (содержащих формулы" то отлично работает, однако жизнь)) сурова и ячеек не счесть...
Прошу помощи Вашей. Совета прошу.
Думаю в сторону сокращения просматриваемых массивов путем ограничения зон просмотра для каждого листа (Названия листов стабильно и неизменно), чтобы не рыл ячейки в которых нет формул со ссылками на старую книгу.
Возможно

[vba]
Код
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
End Sub
[/vba]
К сообщению приложен файл: 8784.xlsb (17.4 Kb)
 
Ответить
СообщениеДобрый день :D
Давненько не был у вас.
Руками выделяю листы, копирую на новую книгу, либо копирую в существующую открытую книгу - все великолепно: ссылки перерегистрируются к новой книге, однако код записанный макрорекордером не работает. (Гуглил, связано с чем-то там).
Нужен код, который бы позволил быстро отвязать из формул ссылок на старую книгу-донора, и перерегистрировать формулы к новой книге. Например в приложенном файле Ячейка А1 Лист1 легко "отвязывается" от файла "8784".
Нижеприведенный код работает, но если в книге немного таких ячеек, массивов (содержащих формулы" то отлично работает, однако жизнь)) сурова и ячеек не счесть...
Прошу помощи Вашей. Совета прошу.
Думаю в сторону сокращения просматриваемых массивов путем ограничения зон просмотра для каждого листа (Названия листов стабильно и неизменно), чтобы не рыл ячейки в которых нет формул со ссылками на старую книгу.
Возможно

[vba]
Код
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
End Sub
[/vba]

Автор - Yar4i
Дата добавления - 21.02.2025 в 10:21
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!