更改链接的来源

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

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 

您在引用的string中包含DATstr 。 它需要被追加到右端或填充到中间。

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

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

我build议您适当地采取您的需要一个程序版本,根据您的要求工作。 我可以花时间制作原始代码以满足您的要求。下面的代码遍历工作簿中的Excel链接,并将test2.xls文件中的链接更改为test4 – 09-14-15.xlsx。 示例文件的快照如下所示。

changelink示例文件

我也上传了示例文件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