Страницы: 1
RSS
внешние связи, удаление внешних связей
 
Здравствуйте!

Подскажите, пожалуйста, можно ли удалить все внешние связи из книги не открывая её.  
 
Открываете книгу архиватором и удаляете содержимое папки xl\externalLinks\
Изменено: Alex_ST - 12.04.2024 09:49:33
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Спасибо,..еще необходимо перед этим обновить данные в книге...
а если книг больше 80ти?)
Изменено: Den23 - 12.04.2024 10:22:42
 
Цитата
Den23 написал:
а если книг больше 80ти?)
делаете, тоже самое макросом
 
Цитата
написал:
делаете, тоже самое макросом
а макрос есть?
 
Den23,
https://www.excel-vba.ru/chto-umeet-excel/prosmotret-vse-fajly-v-papke/
 
Цитата
написал:
..еще необходимо перед этим обновить данные в книге...
интересно, а как Вы собираетесь обновить данные в книге, не открывая её?
Изменено: Alex_ST - 12.04.2024 14:59:45
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Den23,
а почему нельзя открывать книги?
 
Цитата
написал:
а почему нельзя открывать книги?
Вот я их и открываю 89 раз)...мне нужно из 1 книги со внешними связями сделать 89 копий с разными названиями (названия книг влияют на их содержимое после обновления).
 
Den23,
а в чем проблема тогда?

Сделайте небольшой файл пример в excel с желаемым результатом  ;)
 
В итоге решил задачу)

Sub Get_All_File_from_Folder()
   Dim sFolder As String, sFiles As String
   Dim wb As Workbook
   Dim links As Variant
   Dim i As Integer
   
   ' Укажите путь к папке
   sFolder = "путь"
   
   ' Отключаем обновление экрана, чтобы наши действия не мелькали
   Application.ScreenUpdating = False
   sFiles = Dir(sFolder & "*.xlsx")
   Do While sFiles <> ""
       ' Открываем книгу
       Set wb = Application.Workbooks.Open(sFolder & sFiles)
       ' Действия с файлом
       ' Записываем в ячейку A1 первого листа книги точку (".")
       wb.Sheets(1).Range("A1").Value = "."
       ' Разрываем все внешние связи
       links = wb.LinkSources(Type:=xlLinkTypeExcelLinks)
       If Not IsEmpty(links) Then
           For i = LBound(links) To UBound(links)
               wb.BreakLink Name:=links(i), Type:=xlLinkTypeExcelLinks
           Next i
       End If
       ' Закрываем книгу с сохранением изменений
       wb.Close SaveChanges:=True ' Если поставить False, книга будет закрыта без сохранения
       sFiles = Dir
   Loop
   ' Возвращаем ранее отключенное обновление экрана
   Application.ScreenUpdating = True
End Sub
 
Сначала:
Цитата
Den23 написал:
можно ли удалить все внешние связи из книги не открывая её
А в результате:
Цитата
Den23 написал:
' Открываем книгу
:D
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
Страницы: 1
Наверх