Vba 更改链接的源

Vba 更改链接的源,vba,excel,Vba,Excel,我有一张工作表,其中最后一列始终链接到链接。我需要写一个代码,改变这个链接的来源,其中的地址是文件名(“Caixa das empresas”)+昨天的日期。我试着写这段代码,但由于某种原因它不起作用 Sub delete_formulas() Dim LastCol As Integer Dim DATstr As String With Worksheets("Calculo") LastCol = .Cells(2, .Columns.Count).End(xlToLeft).C

我有一张工作表,其中最后一列始终链接到链接。我需要写一个代码,改变这个链接的来源,其中的地址是文件名(“Caixa das empresas”)+昨天的日期。我试着写这段代码,但由于某种原因它不起作用

Sub delete_formulas()

Dim LastCol As Integer
Dim DATstr As String
With Worksheets("Calculo")
    LastCol = .Cells(2, .Columns.Count).End(xlToLeft).Column
Columns(LastCol - 1).Copy
Columns(LastCol - 1).PasteSpecial Paste:=xlPasteValues
End With

ActiveSheet.Calculate
DATstr = Format((Date - 1), "mm-dd-yy")
Columns(LastCol).Select
ChDir "T:\Gerencial\Mapa\Tesouraria\Histórico - Caixa das Empresas"


 ActiveWorkbook.ChangeLink Name:= _
    "T:\Gerencial\Mapa\Tesouraria\Histórico - Caixa das Empresas\Caixa das empresas.xlsx & DATstr"

End Sub

DATstr
包含在带引号的字符串中。它需要附加到右端或填充到中间

ActiveWorkbook.ChangeLink Name:= _
    "T:\Gerencial\Mapa\Tesouraria\Histórico - Caixa das Empresas\Caixa das empresas" & DATstr & ".xlsx"

changeLink函数需要两个参数:Name和NewName。

我建议您根据需要适当地采用一个程序版本,该版本可以根据您的要求工作。我可以抽出时间来编写原始代码以满足您的要求。下面的代码迭代工作簿中的Excel链接,并将链接从test2.xls文件更改为test4-09-14-15.xlsx。 下面给出了示例文件的快照

我还上传了带有样本数据的样本文件test.xlsm。你可以参考

编程方法不同。请尝试以下代码:

Sub Chnlink()
    Dim link, linkSources, newLink As String
    Dim DATstr As String
    DATstr = Format((Date - 1), "mm-dd-yy")
    newLink = ThisWorkbook.Path & "\test4 - " & DATstr & ".xlsx"
    linkSources = ThisWorkbook.linkSources(xlLinkTypeExcelLinks)
    If IsArray(linkSources) Then
      For Each link In linkSources
         If InStr(link, "test2.xls") Then _
          ThisWorkbook.ChangeLink link, newLink, xlLinkTypeExcelLinks
      Next
    End If
End Sub

我已经改变了这一点,但仍然没有工作。当您说“它不工作”时,错误位于“ChangeLink”上。您的意思是它正在抛出错误吗?什么错误,在哪一行?@user7004我在
changelink
上也遇到了错误,这就是为什么我改变了编程方法。请仔细阅读并试用我认为完全符合您要求的提交程序和文件。我现在记不起那个错误了,因为它是昨天解决的,没有记下来。最可能的原因是方法使用不当。目前,我已经更改了您的建议,但代码末尾仍然有一个错误。我的代码如下: