使用公式中预定义单元格的文件路径

时间:2014-01-12 08:34:46

标签: excel excel-formula excel-2010

我认为这应该很简单,但我没有运气能够做到这一点或在互联网上寻找它。显然,我遗漏了一些非常明显的东西。

我有一个单元格,比方说A1,包含以下文件路径:

'C:\[Required file path]Sheetname'

现在我想用它在单元格B1中创建一个公式,比方说:

=Trim('C:\[Required file path]Sheetname'!B26)

由于此链接将动态决定,我希望能够做到这样的事情:

=Trim(A1!B26)

其中A1 =我需要的文件路径。但这不起作用。

希望我能够清楚地解释这个问题。在期待中感谢!!

2 个答案:

答案 0 :(得分:2)

如果您的第二个工作簿(路径'C:\[Required file path]Sheetname'已打开(但在这种情况下,您不需要使用工作簿的完整路径,只需使用WB名称),您可以使用INDIRECT公式(如果您的A1包含''C:\[Required file path]Sheetname'):

=TRIM(INDIRECT(A1 & "!" & CELL("address",B26)))

但如果您的第二个工作簿已关闭,我找到的方法是将用户定义的函数添加到您的第一个工作簿并使用它:

=TRIM(getValue(A1 & "!" & CELL("address",B26)))

其中getValue定义为:

Function getValue(formulaString As String)
   Application.Volatile
   Dim app As Excel.Application
   Dim wb As Workbook

   'set default falue to #REF..if we'd get normal value - we'll change getValue to it'
   getValue = CVErr(xlErrRef)

   'if second WB is open - we can easily evaluate formula and exit function'
   getValue = Evaluate(formulaString)
   If Not IsError(getValue) Then
      Exit Function
   End If

   'if we appear here - second WB is closed...'
   On Error GoTo ErrHandler

   Set app = New Excel.Application
   Set wb = app.Workbooks.Add

   With wb.Sheets(1).Range("A1")
      .Formula = "=" & formulaString
      app.Calculate
      getValue = .Value
   End With

ErrHandler:
   If Not wb Is Nothing Then wb.Close False
   If Not app Is Nothing Then app.Quit
   Set app = Nothing
   Set wb = Nothing
End Function

答案 1 :(得分:0)

尝试:

=TRIM([A1]Sheet1!B26)

其中A1包含如下引用:C:\ Users \ User \ Desktop \ Test.xlsx。

它可能会提示您使用文件浏览器 - 只需选择您要引用的文档(例如Test.xlsx)