Как я могу использовать Excel VBA для обновления ссылок при нажатии кнопки? - PullRequest
0 голосов
/ 03 мая 2019

Я создаю файл Excel, в котором каждый член команды должен скопировать + вставить ссылку на конкретную строку из своих файлов Excel (в SharePoint) в общий файл Excel.

Идея состоит в том, что когда кто-то открывает общий Excel, внешние ссылки на другие файлы Excel не обновляются автоматически.Это объясняется тем, что когда новые файлы должны быть добавлены в общий файл (или удалены), это не займет слишком много времени.Я хочу вставить кнопку, которую нужно нажимать раз в месяц, чтобы обновить все внешние ссылки, чтобы можно было экспортировать общий список.

Пока мне это не удалось.

Я пробовал несколько вещей, но, на мой взгляд, этот код должен работать

Private Sub Workbook_Open()

    Application.Calculation = xlManual
    Application.CalculateBeforeSave = False

    Application.DisplayAlerts = False
    Application.AskToUpdateLinks = False

End Sub

Private Sub Button_Click()

     ActiveWorkbook.UpdateLink Name = Active.Workbook.LinkSources

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.Calculation = xlAutomatic
    Application.CalculateBeforeSave = True

End Sub

Я хочу вставить кнопку, которую нужно нажимать раз в месяц, чтобы обновить все внешние ссылки, чтобы общий списокможно экспортировать.

1 Ответ

0 голосов
/ 03 мая 2019

После некоторых небольших корректировок все работает. У меня были опечатки в строке UpdateLink и я забыл добавить Calculate. Итак, код, который работает для меня:

Private Sub Workbook_Open()

    Application.Calculation = xlManual
    Application.CalculateBeforeSave = False

    Application.DisplayAlerts = False
    Application.AskToUpdateLinks = False

 End Sub

 Private Sub Button_Click()

     ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
     ThisWorkbook.Sheets("Sheet123").Calculate

 End Sub

 Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.Calculation = xlAutomatic
    Application.CalculateBeforeSave = True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...