引用每日更改的文件/ Excel

时间:2016-12-08 15:39:23

标签: excel excel-formula sumifs

在我进入VBA解决方案之前,我想知道是否可以更新我正在引用的已关闭工作簿的文件名。

公式如下:

=SUMIF('L:path\[filename - "&TEXT(WORKDAY(TODAY(),-1),"yyyymmdd")&".xlsx]Sheet'!$BF:$BF,"criteria",'L:path\[filename - "&TEXT(WORKDAY(TODAY(),-1),"yyyymmdd")&".xlsx]Sheet'!$DX:$DX)

为了澄清,文件名看起来像这样的路径This is the filename - yyyymmdd.xlsb

有人在工作时表示无法更改文件名,因为它是一个字符串。如果是这种情况,有人可以稍微扩展一下吗?

1 个答案:

答案 0 :(得分:0)

你不能真的。如果您有“Book1.xls”和“Book2.xls”,那么您可以将此公式放在book1中:

= MID(CELL(“filename”,A1),FIND(“[”,CELL(“filename”,A1))+ 1,FIND(“]”,CELL(“filename”,A1)) - 查找( “[”,CELL( “文件名”,A1)) - 1)

这将返回Book1的名称(仅)。然后,您可以从Book2引用该单元格。 HOwever,如果您将Book1的名称更改为其他名称,则引用将被破坏,您将不得不手动更改引用(从更新链接管理器中选择文件)。似乎excel使用绝对路径,包括文件名,来引用其他工作簿。您需要有一种方法将对该工作簿的灵活引用存储到Book2中。但唯一的办法就是VBA。

有趣的是,你可以这样做:

  • 在book2中创建一个指向book1中单元格的引用。您可以在book2中获得该单元格的值。
  • 关闭所有内容。
  • 仅打开book1,编辑引用的单元格。关闭&保存book1。
  • Book2,当您打开它时,会询问您是否要更新链接,即使book1仍然关闭,您也可以看到更新的值。

我的另一个想法是使用INDIRECT,就像在那里做的那样:using indirect function in Excel

但它不适用于已关闭的工作簿,这是您的要求之一。

所以VBA就是。