Excel VBA更新链接

Excel VBA更新链接,excel,vba,Excel,Vba,我正在尝试设置VBA宏以更新excel中的链接路径。我在网上查找了一些代码,并试图将其组合在一起,但发现了一些错误。我想知道我是否能在这里找到一些方向。请注意,我不是一个程序员的职业,只是试图减少一些手动更新工作 干杯 私有子命令按钮1_单击() 结束子文件夹中的工作簿处理 循环浏览文件夹中的所有Excel文件(工作簿),打开每个文件,更改从一个文档到另一个文档的链接,保存更改并关闭工作簿 xlLinkTypeExcelLinks是类型的默认参数 ChangeLink方法的参数,因此可以省

我正在尝试设置VBA宏以更新excel中的链接路径。我在网上查找了一些代码,并试图将其组合在一起,但发现了一些错误。我想知道我是否能在这里找到一些方向。请注意,我不是一个程序员的职业,只是试图减少一些手动更新工作

干杯

私有子命令按钮1_单击()

结束子文件夹中的工作簿处理
  • 循环浏览文件夹中的所有Excel文件(工作簿),打开每个文件,更改从一个文档到另一个文档的链接,保存更改并关闭工作簿
  • xlLinkTypeExcelLinks
    类型的默认参数
    
    ChangeLink
    方法的参数,因此可以省略
  • .Close True
    可以以这种方式使用,因为
    SaveChanges
    方法的
    Close
    的第一个
    参数
代码
Private子命令按钮1\u单击()
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*”
将strName设置为字符串
应用
.ScreenUpdate=False
.AskToUpdateLinks=False
以
关于错误转到过程退出
strName=Dir(strPath&“\”&strExt)
当strName“”时执行
使用工作簿。打开(strPath&“\”&strName)
.ChangeLink strOld,strNew
.接近真实
以
strName=Dir
环
程序退出:
应用
.AskToUpdateLinks=True
.ScreenUpdate=True
以
端接头

欢迎光临。你说你“犯了错误”。描述或显示错误可能会有所帮助。提供尽可能多的信息,以便有人能够方便地帮助您。您应该阅读的“帮助”部分,并使用更多信息更新您的问题,可能需要删除方括号
[]
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
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