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

问题描述 投票:1回答:2

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

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

'C:\[Required file path]Sheetname'

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

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

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

=Trim(A1!B26)

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

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

excel excel-formula excel-2010
2个回答
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

0
投票

尝试:

=TRIM([A1]Sheet1!B26)

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

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

© www.soinside.com 2019 - 2024. All rights reserved.