使用连接公式从封闭的文件中获取数据

使用连接公式从封闭的文件中获取数据

每天程序都会为我创建一个 Excel 文件,其中包含当天的一些数据。例如产品价格是多少、今天有多少人可以预约等等。

基于所有这些,我需要为员工做出一些预测和工作场所分配。问题是,我需要一直手动拖动所有这些信息。因此,为了使其自动化,我在单元格中放置了以下公式:

='c:\ABC\[ABC 29-01-14.xlsx]sheet'!a1

一切正常,但第二天我必须为ABC 30-01-14每个单元格更改“ ”的文件名,这与手动输入数据相同。

所以我使用“ concatenate”公式自动根据今天的日期更改日期。我使用“”公式indirect将其转换为真正的公式,而不是文本字符串,并意识到它仅适用于打开的文件,而不适用于关闭的文件。

有没有办法在不使用 VBA 的情况下对关闭的文件执行此操作,因为我不知道,或者使用 VBA 但为白痴解释一下。

答案1

有趣的是,我一直在研究这个问题,因为对于一个庞大的 Excel 文档(每周将大约 50 个单元格拉入一个可以追溯到一年半前的文档中)

我已经能够从关闭的工作簿(excel 2013 和 2016)中提取数据,但现在在新文档中我遇到了麻烦。

我以前能够做到这一点的方法是创建一个连接公式,有一个宏副本,为每个新月份创建一个新行作为值,然后运行一个代码片段(感谢很久以前提供它的未命名的论坛向导)在宏中删除任何前导撇号,然后将每个单元格的公式拖下来。

正如上面所述,您确实需要确保它是完整的相对路径('c:\abc\[abcdoc.xlsx]sheet')。

片段:

'Removes Apostrophes from A14:AR14
    Range("A14:AI14").Select
' Removes hidden apostrophes as first character
' Works on formulas as well as text and values
    For Each CurrentCell In Selection
    If CurrentCell.HasFormula = False Then

'Checks to make sure that procedure does not
'change cell with a formula to be only the value
    CurrentCell.Formula = CurrentCell.Value
    End If
    Next

相关内容