Excel 动态工作簿名称更改和单元格引用-是否可能?

Excel 动态工作簿名称更改和单元格引用-是否可能?,excel,vba,dynamic,excel-formula,Excel,Vba,Dynamic,Excel Formula,我的问题是一个预编码问题,因为我想验证是否以及哪一个是进行此操作的最佳选项-公式、VBA或不可能 我有一个主工作簿,在第1页的单元格中有一个代码数组-所有的格式都是HXXX-XXX-XXX,其中X是0-9之间的数字。每个代码都有一个相关的修订号,如附图所示 工作簿本身的命名格式为:“HXXX-XXX-XXX-YY示例标题”,其中YY可以是从0到无穷大的任何数字(理论上)。标题中只有YY可更新。如果在此工作簿中进行了更改,则会保存一个新版本,标题中的YY将更改为下一个连续数字-其他内容不会更改

我的问题是一个预编码问题,因为我想验证是否以及哪一个是进行此操作的最佳选项-公式、VBA或不可能

我有一个主工作簿,在第1页的单元格中有一个代码数组-所有的格式都是HXXX-XXX-XXX,其中X是0-9之间的数字。每个代码都有一个相关的修订号,如附图所示

工作簿本身的命名格式为:“HXXX-XXX-XXX-YY示例标题”,其中YY可以是从0到无穷大的任何数字(理论上)。标题中只有YY可更新。如果在此工作簿中进行了更改,则会保存一个新版本,标题中的YY将更改为下一个连续数字-其他内容不会更改

从这本主工作簿中,有大量其他工作簿(大约50本)共享相同的代码和版本。我的目标是将所有这些工作簿链接起来,这样我只需更新核心主工作簿,其他所有链接工作簿中的其他代码(HXXX-XXX-XXX)修订版也会相应更新

问题在于,其他链接工作簿的动态名称格式为:“HXXX-XXX-XXX-YY示例标题2”,其中YY可以是从0到无穷大的任何数字。如果文档内部发生更改,YY将更新为下一个连续编号,然后使用“另存为”将此文档另存为单独的文档。注意:并非所有工作簿都会同时更新,因为这完全取决于哪些代码,因此修订版也会发生变化

我的问题是,首先,当前的excel功能是否可以使用不断变化的工作簿链接更新链接,这些链接每次保存在同一文件夹中时都会保存为不同的文件

其次,我已经阅读了间接功能,但它仅限于在主工作簿更新的同时打开所需的工作簿,因此我不确定公式是否有效(我将把50本工作簿链接到主工作簿)-从这一点来看,VBA可能是最好的选择,但在我开始尝试代码之前,我想再次检查这是否可行


当然,在工作表中使用公式会更好,但由于文件名是动态的,而且每次更改时更新的工作簿都会保存为不同的文件,因此我认为这是不可能的。

如果我正确理解您的问题,您需要区分三种情况

仅使用Excel公式。 这样做的问题是,跨工作簿的公式有很大的缺点,您需要打开源工作簿,否则manny公式将无法正常工作或更新。您还有一个缺点,即保存文件仍然需要自动完成。优点是不需要VBA宏

使用电源查询 使用Power Query,您可能可以解决动态名称的问题。您甚至可以读取整个文件夹中的文件,将它们合并并进行转换,而无需手动打开这些文件。但是您仍然需要手动保存新文件,并且这些文件只有在打开后才会更新

使用VBA 在问题描述中,你可以做任何你要求做的事情,但是VBA有它自己的缺点。首先,IT部门不允许使用文件格式“.xlsm”。同样要工作,每个使用文件的用户都需要激活宏,否则宏将无法执行。因此,我认为如果您只有一小部分用户,或者您可以自己执行宏(例如,如果主工作簿已更新,您需要执行一个宏来打开、修改和保存所有受影响的文件),那么VBA解决方案更适合您。之后,您的同事自己就不需要VBA了

可能的解决办法: 为了避免VBA,您可以尝试在每个“其他工作簿”中创建电源查询。查询将读取主工作簿所在文件夹中的所有文件名。现在,您可以自动对具有最新/最高ID/Titel的工作簿进行排序和筛选,并将结果作为单独的Excel工作表加载(使用power query和不使用VBA都可以)。
现在,您可以使用“间接”公式使用ID/Titel链接到最新的主工作簿。如上所述,这需要打开主工作簿。否则,间接公式将不会更新值。如果这是不可能的,您可能需要使用VBA。

Hi@DecimalTurn感谢您的联系!这个想法是+/-50工作手册将从核心工作簿中读取,因为+/-50工作手册有大量副本需要手动更新。我唯一担心的是,当核心文档被更新时,它的YY值将被更新到下一个连续的数字,并保存为一个单独的文档-因此,如果我使用forumlas,在这种情况下我会丢失链接吗?此外,我希望在后台进行更新,不想打开所有文档,让间接公式发挥作用?我想我的问题延伸到使用VBA对核心工作簿中的HXXX-XXX-XXX修订号进行任何更改的可能性,然后搜索+/-50工作簿的其他最新版本,查看是否需要进行相同的更改,并应用这些更改。如果进行了更改,那么我需要将更新的+/-50工作簿保存为新版本,标题名称中的YY值将进入下一个连续数字-我希望这是有意义的。我不确定这是否可行,但这将节省大量的手工工作和重复。前面题为“VBA中引用名称更改工作簿”的问题是否有助于解决这一问题?(很抱歉,我不知道如何链接到另一个问题)不幸的是,我的VBA知识没有扩展到文件名和解析文件名,因此这方面的任何帮助都将非常有用