繁体   English   中英

如何在Excel中创建一个带有公式的链接到另一个工作簿?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM