在我进入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
有人在工作时表示无法更改文件名,因为它是一个字符串。如果是这种情况,有人可以稍微扩展一下吗?
答案 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。
有趣的是,你可以这样做:
我的另一个想法是使用INDIRECT,就像在那里做的那样:using indirect function in Excel
但它不适用于已关闭的工作簿,这是您的要求之一。
所以VBA就是。