更改链接的来源

时间:2015-09-14 23:53:20

标签: excel vba excel-vba

我有一张表格,其中最后一列始终链接到一个链接。我需要编写一个代码来改变这个链接的来源,其中地址是文件的名称(“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

3 个答案:

答案 0 :(得分:2)

您在引用的字符串中包含DATstr。它需要附加在右端或填入中间。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

changelink sample file

我还上传了带有示例数据的示例文件test.xlsm。您可以参考here

编程方法不同。试试这段代码:

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