Доброго дня, Подскажиет пожалуйста. Как обновить связи без всплывающенго сообщения? Что делаю не так? Спасибо.
Код
Sub test_2()
Dim sFile As String
Dim wb As Workbook
Dim FileName As String
Dim wksSource As Worksheet
Const scWkbSourceName As String = "test"
Const sPath As String = "test"
Set wkbSource = Workbooks(scWkbSourceName)
Set wksSource = wkbSource.Sheets("Setup")
SourceRow = 6 'start from this row
Do While Cells(SourceRow, "B").Value <> ""
FileName = wksSource.Range("B" & SourceRow).Value
sFile = sPath & FileName
Set wb = Workbooks.Open(sFile)
wb.LockServerFile
wb.Activate
wb.UpdateLink Name:=ActiveWorkbook.LinkSources 'тут появляется сообщение
wb.Save
wb.Close
SourceRow = SourceRow + 1
Loop
End Sub
Application.DisplayAlerts = false в начале кода отключало диалоговые окна. Application.DisplayAlerts = true в конце возвращало поведение программы к нормальному состоянию. Проблема была в том, что диалоговые окна возвращались после закрытия первого файла в списке, а не после обработки всех файлов. Вы убрали оба Application.DisplayAlerts. В теории код, теперь должен выдавать на одно диалоговое окно больше, чем до правок (по крайней мере, после переоткрытия экселя).
Убрал Application.DisplayAlerts = false , Application.DisplayAlerts = false из кода. Сообщение все равно появляется. Перенес после Loop - не помогло
Спасибо что направели... вот как выкрутился...
Код
Sub test_2()
Dim sFile As String
Dim wb As Workbook
Dim FileName As String
Dim wksSource As Worksheet
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.AskToUpdateLinks = False
Const scWkbSourceName As String = "Ваше имя файла"
Const sPath As String = "Пусть к вашему файлу"
Set wkbSource = Workbooks(scWkbSourceName)
Set wksSource = wkbSource.Sheets("Имя листа где список файлов для обновления")
SourceRow = 6
Do While Cells(SourceRow, "B").Value <> ""
FileName = wksSource.Range("B" & SourceRow).Value
sFile = sPath & FileName
Set wb = Workbooks.Open(sFile)
wb.LockServerFile
wb.Activate
wb.UpdateLink Name:=ActiveWorkbook.LinkSources
wb.Save 'save workbook
wb.Close 'close workbook
SourceRow = SourceRow + 1 ' Move down 1 row for source sheet
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.AskToUpdateLinks = True
End Sub