Excel VBA обновление ссылок - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь настроить макрос VBA для обновления путей ссылки в Excel.Я посмотрел какой-то код в Интернете и попытался собрать его, и получаю ошибки.Мне интересно, если бы я мог получить какое-то направление здесь.Обратите внимание, что я не программист по профессии, просто пытаюсь сократить объем работы по обновлению вручную.

Cheers!

Private Sub CommandButton1_Click ()

Dim FolderPath As String
Dim FSO As Object
Dim bookname As String
Dim wbook As Workbook
Dim oldname As String
Dim newname As String

oldname = "C:\Users\XX\Documents\[Broadstreet.xlsx]"

newname = "C:\Users\XX\Documents\[Broadstreet2.xlsx]"

FolderPath = "C:\Users\XX\Documents1"


With Application
    .ScreenUpdating = False
    .AskToUpdateLinks = False
End With


For Each Workbook In FSO.GetFolder(FolderPath).Files
    bookname = Workbook.Name

    MsgBox (bookname)

    Set wb = Workbooks.Open(FolderPath & "\" & bookname)

   ActiveWorkbook.ChangeLink oldname1, newname1, xlLinkTypeExcelLinks


   wb.Close SaveChanges:=True

Next

Application.ScreenUpdating = True

End Sub

1 Ответ

0 голосов
/ 23 декабря 2018

Рабочие книги в обработке папок

  • Перебирает все файлы Excel (книги) в папке, открывает каждый, меняет ссылку с одного документа на другой, сохраняет изменения и закрываетworkbook.
  • xlLinkTypeExcelLinks является параметром по умолчанию аргумента Type метода ChangeLink и поэтому может быть опущен.
  • .Close True можно использовать таким образом, потому что SaveChanges - это первый аргумент метода Close.

Код

Private Sub CommandButton1_Click()

  Const strOld As String = "C:\Users\XX\Documents\[Broadstreet.xlsx]"
  Const strNew As String = "C:\Users\XX\Documents\[Broadstreet2.xlsx]"
  Const strPath As String = "C:\Users\XX\Documents1"
  Const strExt As String = "*.xls*"

  Dim strName As String

  With Application
    .ScreenUpdating = False
    .AskToUpdateLinks = False
  End With

  On Error GoTo ProcedureExit

  strName = Dir(strPath & "\" & strExt)

  Do While strName <> ""
    With Workbooks.Open(strPath & "\" & strName)
      .ChangeLink strOld, strNew
      .Close True
    End With
    strName = Dir
  Loop

ProcedureExit:
  With Application
    .AskToUpdateLinks = True
    .ScreenUpdating = True
  End With

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