我有一张表格,其中最后一列始终链接到一个链接。我需要编写一个代码来改变这个链接的来源,其中地址是文件的名称(“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
答案 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。 下面给出了示例文件的快照。
我还上传了带有示例数据的示例文件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