Страницы: 1
RSS
Links termination
 
Можно ли сделать так(с помошью макроса...,а лучше без),чтобы линки автоматически убирались при закрытии файла,либо выводилось бы напоминание,что нужно убрать линки?
 
Как без макроса не знаю, а макросом так  
 
Вставьте этот код в модуль ЭтаКнига(ThisWorkbook) через Alt+F1l  
 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)  
   KillLinks 'Проверка на внешние ссылки  
End Sub  
 
Private Sub KillLinks()  
   'удаляет ссылки на другие книги Excel  
   Dim iLinks As Variant, i&  
   iLinks = ActiveWorkbook.LinkSources(xlExcelLinks)  
   If Not IsEmpty(iLinks) Then  
       If MsgBox("Книга содержит внешние связи!" & Chr(13) & "Разорвать связи?", vbYesNo + vbInformation, "Связи...") = vbNo Then: Exit Sub  
       For i = 1 To UBound(iLinks)  
           ActiveWorkbook.BreakLink Name:=iLinks(i), Type:=xlExcelLinks  
       Next i  
   End If  
End Sub
 
... через Alt+F11 (или щёлкнуть правой клавишей мыши на ярлычке листа (слева внизу) и выбрать "Исходный текс" и там уже выбрать модуль ЭтаКнига)
 
без макроса: правка - связи - разорвать связь
 
{quote}{login=kaa}{date=06.08.2008 01:15}{thema=}{post}без макроса: правка - связи - разорвать связь{/post}{/quote}  
 
)) я тоже хотел это предложить, но это боюсь не будет "автоматически при закрытии файла", как хотел автор), если только взять себе за правильно и делать это на автомате при закрытии книги )
 
опять опечатался )) ".... взять себе за правило ...." ))
 
{quote}{login=}{date=06.08.2008 01:32}{thema=Re: }{post}{quote}{login=kaa}{date=06.08.2008 01:15}{thema=}{post}без макроса: правка - связи - разорвать связь{/post}{/quote}  
 
)) я тоже хотел это предложить, но это боюсь не будет "автоматически при закрытии файла", как хотел автор), если только взять себе за правильно и делать это на автомате при закрытии книги ){/post}{/quote}  
 
я на этот случай себе кнопку в эксельную менюху вставил с макросом, разрывающим связи...
 
Нет,что-то не фурычит...
 
{quote}{login=Pavel55}{date=06.08.2008 01:05}{thema=}{post}Как без макроса не знаю, а макросом так  
 
Вставьте этот код в модуль ЭтаКнига(ThisWorkbook) через Alt+F1l  
 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)  
   KillLinks 'Проверка на внешние ссылки  
End Sub  
 
Private Sub KillLinks()  
   'удаляет ссылки на другие книги Excel  
   Dim iLinks As Variant, i&  
   iLinks = ActiveWorkbook.LinkSources(xlExcelLinks)  
   If Not IsEmpty(iLinks) Then  
       If MsgBox("Книга содержит внешние связи!" & Chr(13) & "Разорвать связи?", vbYesNo + vbInformation, "Связи...") = vbNo Then: Exit Sub  
       For i = 1 To UBound(iLinks)  
           ActiveWorkbook.BreakLink Name:=iLinks(i), Type:=xlExcelLinks  
       Next i  
   End If  
End Sub{/post}{/quote}  
 
Возможно,что что-то не так с кодом,перепробовал все варианты?!
 
{quote}{login=Iftul}{date=06.08.2008 03:13}{thema=Re: }{post}{quote}{login=Pavel55}{date=06.08.2008 01:05}{thema=}{post}Как без макроса не знаю, а макросом так  
 
Вставьте этот код в модуль ЭтаКнига(ThisWorkbook) через Alt+F1l  
 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)  
   KillLinks 'Проверка на внешние ссылки  
End Sub  
 
Private Sub KillLinks()  
   'удаляет ссылки на другие книги Excel  
   Dim iLinks As Variant, i&  
   iLinks = ActiveWorkbook.LinkSources(xlExcelLinks)  
   If Not IsEmpty(iLinks) Then  
       If MsgBox("Книга содержит внешние связи!" & Chr(13) & "Разорвать связи?", vbYesNo + vbInformation, "Связи...") = vbNo Then: Exit Sub  
       For i = 1 To UBound(iLinks)  
           ActiveWorkbook.BreakLink Name:=iLinks(i), Type:=xlExcelLinks  
       Next i  
   End If  
End Sub{/post}{/quote}  
 
Возможно,что что-то не так с кодом,перепробовал все варианты?!{/post}{/quote}  
 
 
Заработал макрос,спасибо
Страницы: 1
Читают тему
Наверх