[英]Excel: How do I link to an external workbook always in the same directory?
[英]How do I create a link in Excel, with a formula in it, to another Workbook?
我不确定在Excel中是否甚至可以做到这一点,但这是我需要做的:
我有一列包含酒店列表的列,然后是另一列,需要从每个酒店的excel文件中提取数据。 例如,单元格A2的酒店名称为“巴黎”,然后单元格B2的链接为:
='G:\Hotels\Paris\Paris - Monthly\[Paris_summary_2018.xlsm]Feb'!$CD$89
我有很多酒店需要在不同的表中进行此操作。 因此,我需要该链接来动态引用A列中的任何酒店和工作表的标题,例如,我可以这样做吗?
=''G:\Hotels\A2\A2 - Monthly\[A2_summary_2018.xlsm]Feb'!$CD$89
其中A2具有字符串“ Paris”。 也有一种方法可以动态地引用“ Feb”,具体取决于我当月的工作表是标题
我也愿意为此使用VBA。
我不确定是否可以使用HYPERLINK
。
像这样:
=HYPERLINK("G:\Hotels\"&A2&"\"&A2&" - Monthly\["&A2&"_summary_2018.xlsm]Feb!"&$CD$89)
只要您不介意使用VBA,就可以轻松生成如下所示的链接:
Sub generate_hotel_links()
Dim r As Range, c As Range
Dim s As String
' This is the range which all the hotel-locations are in
Set r = ThisWorkbook.Worksheets("Sheet1").Range("A1:A10")
On Error Resume Next
For Each c In r
' Generate the formula based on the current cell we are in
s = "=" & Chr(39) & "G:\Hotels\" & CStr(c) & "\" & CStr(c) & " - Monthly\[" & CStr(c) & "_summary_2018.xlsm]Feb" & Chr(39) & "!$CD$89"
' ...and put it in the neighbouring cell
c.Offset(0, 1).Formula = s
Next c
On Error Goto 0
End Sub
On Error Resume Next
无论弹出什么错误,宏都将继续执行-理想的情况是进行更健壮的错误处理,或者在尝试编写公式之前检查工作簿/工作表是否确实存在,但我将离开如果您认为需要改进宏,可以尝试编写此代码。
如果您只想使用通用的Excel公式,建议您看一下我在问题注释中发布的问题和答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.