每个月更改名称的工作簿的单元格引用

我有一个单元格D5链接到另一个工作簿与公式[1月.Book1.xlsx] Sheet1!$ D $ 5。

问题在于January.Book1.xlsx在下个月被更新的数字称为February.Book1.xlsx。 但是,它位于相同的文件夹中并且结构相同。

有没有一种简单的方法来使这个单元格引用自动到Sheet1!$ D $ 5为最新的工作簿和每个月的更新随着时间的推移?

将此代码放在ThisWorkbook模块中,并保存启用了macros( .xlsm )的macros的工作簿:

 Private Sub Workbook_Open() ' Change the worksheet to whichever one you need Worksheets(1).Range("D5").Formula = "='[" & WorksheetFunction.Proper(MonthName(Month(Now()))) & ".Book1.xlsx]Sheet1'!$D$5" End Sub 

这是比Excel公式更多的数据架构问题。

创build一个名为“CurrentMonth.xlsx”的书的链接。

然后使用一个采用一月份文件并将其保存为名为“CurrentMonth.xlsx”的文件的过程。 这可以通过Powershell来实现。

下个月,您将获得二月份文件,创build一个副本并覆盖/重命名为“CurrentMonth.xlsx”。

像这样的东西可以安排与Powershell或与VBA。

这里的基本思想是,不要更改查找文件的名称,因此不必更改Excel工作簿中的公式。 而是在操作系统层使用工具,以确保Excel公式所指向的文件始终被调用为相同的文件,并replace为日程表中的当前数据。