【问题标题】:Excel Index Indirect closed workbookExcel 索引间接关闭工作簿
【发布时间】:2018-06-18 08:49:35
【问题描述】:

我知道您不能使用 Indirect 来引用已关闭的工作簿,但您可以使用 index 函数从已关闭的工作簿中返回一个值,例如:

=INDEX([Test.xlsx]Sheet1!C:C,14,1)

从单元格 C14 返回值

当工作簿打开时,间接函数也可以正常工作; =INDIRECT("'"&$F6&"'!C14")

在我的一生中,我似乎无法将两者结合起来以获得我想要的结果,那就是封闭工作簿的价值。

是我遗漏了什么还是不可能?

谢谢

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    不可能使用公式从已关闭的工作簿中获取价值

    作为一种解决方法,您可以创建 VBA 代码,该代码打开工作簿,获取值并关闭它。这是一些示例代码,它打开文件testing.xlsx并将Worksheets(1).Range("A1")的值写入ThisWorkbook

    Public Sub TestMe()
    
        Dim wb As Workbook
        Set wb = Workbooks.Open("C:\path\testing.xlsx")
        ThisWorkbook.Worksheets(1).Range("A3") = GetSheet1A1(wb)
        wb.Close False
    
    End Sub
    
    Public Function GetSheet1A1(wb As Workbook) As Variant
    
        GetSheet1A1 = wb.Worksheets(1).Range("A1").Value2
    
    End Function
    

    【讨论】:

    • 有 INDIRECT.EXT 但应注意代码的来源。
    • @Jeeped - 我从未使用过INDIRECT.EXT,但我猜它仍在打开引用的工作簿。否则我无法想象它是如何完成的。
    • 它来自一个旧的开源插件。寻找副本的问题在于,周围有许多混账副本。
    • @Jeeped - 你的意思是这些很好地锁定的 VBA 插件,它们很好地开始将有关你的文件和操作的信息发送到特定的电子邮件/数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多